1

私はこのモデルを持っています(簡潔にするためにここでは切り捨てられています):

class Meal(models.Model):
    host = models.ForeignKey(User, related_name="cooking")
    cost = models.IntegerField(default=1)

    summary = models.CharField(max_length=1024, default="A good dinner")

    diners = models.ManyToManyField(User, through='Attendance',
    related_name="diners", blank=True)

同期すると、diners フィールドは完全に無視されます。データベースには表示されず、syncdb の実行時にエラーは発生しません。あたかもそこにいないかのようです。ユーザー テーブルと出席テーブルはすべて問題ありません。

このフィールドを南に追加しようとしたときにこの問題を発見したので、代わりにそれも試しました。

何か案は?ありがとう

4

1 に答える 1

1

diners フィールドを追加する前に、既に syncdb fyrir Meal を実行しましたか?

ここで読むことができるように、syncdb は既存のテーブルを変更しないためです。

ジャンゴのドキュメント

補足 - 私は個人的に南を使用したことはありませんが、開発中にDjango の進化を使用しました。

編集:

あなたのコメントを読んだ後、私は問題が何であるかを知っていると思います.

ManyToManyField でthroughを使用する場合、Django はそのテーブルにフィールドを追加しません。必要な情報はすべて出席テーブルにあります。

于 2012-10-16T16:27:27.047 に答える