0

モデル フィールドが重複していると問題が発生します (Web ページを実行すると、そのようなテーブル appname_modelname はありません)。./manage.py migrate appname を実行すると、「重複フィールド」が表示されます。私は自分のmodels.pyをチェックしましたが、そこには1つしかありません。その重複したフィールドを削除するにはどうすればよいですか? 私が何をしても、それはとどまるようです。私はもう試した:

  • データベースの削除

  • アプリ フォルダー内の移行フォルダーの削除

  • ./manage.py sqlclear south を実行してから、dbshel​​l に south_migrationhistory テーブルをドロップする

  • ./manage.py schemamigration appname --initial、./manage.py migrate appname --fake

アイデアが尽きた。

class Document(models.Model):
    filename = models.CharField(max_length=255, blank=True, null=True, default=None)
    identity = models.CharField(max_length=255, default=None, null=True)
    user = models.ForeignKey(User, null=False)
    user_id = models.IntegerField(User, null=True)
    docfile = models.FileField(upload_to=_upload_path, storage=fs) # upload_to is a path inside the storage path

    def get_upload_path(self,filename):
        return str(self.user.id) + '/' + str(date.today()) + '/' + filename
4

2 に答える 2

-1

よくわかりませんが、これらの2行で問題が発生しています

user = models.ForeignKey(User, null=False)
user_id = models.IntegerField(User, null=True)

データベースの「ユーザー」がuser_idとして追加されるため、重複エラーを避けるために「関連する名前」属性を使用することをお勧めします。

user = models.ForeignKey(User, related_name="id_user") # Change the related field as your convenience
user_id = models.IntegerField(null=True, related_name="user_id")

これで問題が解決するかどうかを確認してください

于 2014-07-14T13:33:43.290 に答える