3

これはおそらくdbデザインの問題ですが、それ以上は理解できませんでした。フォワード宣言 - djangoの管理ページはありませんか?

class User(models.Model): 
    name = models.CharField(max_length=40) 
    # some fields omitted 
    bands = models.ManyToManyField(Band) 

class Band(models.Model): 
    creator = models.ForeignKey(User) 
    # some fields omitted 
    name = models.CharField(max_length=40) 

だから、基本的に、私はバンドの実体と多くの関係に多くを持っているユーザエンティティを、持っている

:他のいくつかの中で、私はこれらのモデルを持っています。私は特別な編集機能を持つためにサイト上のバンドを「作成」した特別なユーザーが欲しいということです。そこで、私は前進し、作成者と呼ばれるForeignKeyを追加しました。 BandはソースのUserの後に来たので、コードを実行できませんでした。だから私は class Band(models.Model): passと宣言した。残念ながら、これは良いアイデアではないようです。なぜなら現在バンドはdjango管理者のインターフェース要素を表示しない唯一のモデルだからです(バンドモデルはそこにあり、編集できません)。

私の質問は、この作業を適切に行うためにモデルにどのような変更を加える必要があるかということです。 (もしあれば)

答えて

12

参照:http://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey、こう述べています。

あなたはまだ定義されていない たモデル上の関係を作成する必要がある場合は、モデルの名前を使用することができ、むしろ は、

class Car(models.Model): 
     manufacturer = models.ForeignKey('Manufacturer') 
     # ... 

class Manufacturer(models.Model): 
     # ... 
+0

恐ろしい感謝:モデルオブジェクト自体よりも。 Django FTW! –

関連する問題