私は現在、最初の Django プロジェクトに取り組んでおり、既存のモデルに ImageField を追加することに関して障害にぶつかっています。
現在、コンテンツを投稿するユーザーのモデルと django-profiles のモデルがあります。前者の場合は、使用者がテキスト コンテンツに添付する写真を送信できるように、ImageField を追加しました。後者については、ユーザーがプロフィール写真をアップロードできるようにしたいと考えています (現時点では、アバターのサイズ変更については心配していません)。
両方のモデルに ImageFields を追加するまで、うまく機能していました。次に、データベースを South と同期しました。プロファイル用にかつて機能していたテンプレートを取得しようとしたときに得られた結果は次のとおりです。
「そのような列はありません: report_userprofile.profile_pic」
送信されたテキスト コンテンツを表示しようとすると、同様のエラーが発生します。
両方のフィールドを「blank=True」に設定したので、画像ファイルがなくてもエラーは発生しないように見えました。私は明らかに間違っています。
最初はこれらのフィールドをモデルに入れていませんでしたが、後から考えると大きな間違いでした。また、MEDIA_ROOT と MEDIA_URL を次のように設定しました。
MEDIA_ROOT = 'os.path.join(BASE_DIR, "media")'
MEDIA_URL = 'http://localhost:8000/media'
私が現在使用しているモデルは次のとおりです。
class Story(models.Model):
title = models.CharField(max_length=100)
topic = models.CharField(max_length=50)
copy = models.TextField()
author = models.ForeignKey(User)
zip_code = models.CharField(max_length=10)
latitude = models.FloatField(blank=False, null=False)
longitude = models.FloatField(blank=False, null=False)
date = models.DateTimeField(auto_now=True, auto_now_add=True)
pic = models.ImageField(upload_to='pictures', blank=True)
def __unicode__(self):
return " %s" % (self.title)
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
first_name = models.CharField(max_length=25)
last_name = models.CharField(max_length=35)
email = models.EmailField()
birth_date = models.DateField(blank=True, null=True)
city = models.CharField(max_length=25)
state = models.CharField(max_length=20)
zip_code = models.CharField(max_length=10)
profile_pic = models.ImageField(upload_to='pictures', blank=True)
URL ファイルは次のように設定されます。
url(r'^admin/', include(admin.site.urls)),
(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT},
ここでの中心的な問題は、エラーが何であるかわからないことです (以前のテンプレートも?)。または、さらに良いことに、エラーは、私がいくつか作成したと確信しているためです。結果として生じる苦痛とともに、今はちょっとしたスープです。
参考までに、PILをインストールしました。
この状況を改善するために私が何をする必要があるかについての洞察は、たとえ小さな洞察であっても、非常に高く評価されます. 同様の問題を検索しましたが、この特定のものはありません。(今後の最初の教訓は、最初にモデルを組み立てるときに、明らかに ImageFiles をセットアップすることです。)
どうもありがとう。