我有以下型号:Django admin:我如何将不相关的模型字段添加到模型更改/添加页面?
class Foo(models.Model):
field1 = models.IntegerField()
...
class Bar(models.Model):
field1 = models.IntegerField()
...
class Foo_bar(models.Model):
foo = models.ForeignKey(Foo)
bar = models.ForeignKey(Bar)
...
在管理,我想它,以便在富变化/添加页面,你可以指定一个Bar对象,并保存我想创建一个foo_bar这样的名称对象代表关系。我如何通过自定义管理网站/ ModelAdmins来做到这一点?请注意,内联并不是我所需要的,因为foo和bar之间没有明确的外键关系。其次,我实际上并不想编辑栏对象,我只想从系统中选择。
谢谢。
谢谢!如果我在Bar中声明ManyToManyField,是否可以将它显示在Foo中? – Neil 2010-05-18 00:24:04
这就是'related_name'参数的全部内容。使用我的例子,每个'Foo'对象都有一个'bars'字段,它是M2M,并且每个'Bar'对象都有一个'foos'字段,它是反向关系。所以,你把'ManyToManyField'放入哪一个并不重要;你会自动获得两个方向。只是不要把它放在两个模型中,否则会嘲笑你。 – 2010-05-18 02:47:32
同时检查'ForeignKey'文档中描述的'limit_choices_to'参数,以便保持列表大小不变。还有一件事:在管理员中,关系只出现在管理员为声明“ManyToManyField”的模型中。 – 2010-05-18 02:50:33