我有三种模式:
System_Contact
System
Contact_list
Contact_List
模型有两个字段:contact
和sys
,毫不奇怪,这只是一个将联系人列表与每个系统相关联的manyToMany模型。我有modelForm
用于向系统的联系人列表添加新联系人:
class Add_Contact_Form(ModelForm):
class Meta:
model = Contact_List
fields = ('contact',)
简单,对吧?我的困惑是:即使Contact_List
模型有很多多个重复contacts
(因为一个联系人可以与许多系统相关联),每个联系人只在表单中显示一次& #39; s Select
小部件。
为什么?!
我的意思是,这对我来说是一个很好的默认行为,但我想确保这实际上是我可以依赖的正确的默认行为,而不是我做过的一些随机错误现在正好适合我。
答案 0 :(得分:1)
这不是它的默认行为,而是contact_list表单中的select小部件显示来自联系表的所有条目。
每个模型都是数据库中的表,因此您有3个表:
如果您正在尝试这样做,则应该具备以下条件:
class Contact(models.Model):
name = ...
class System(models.Model):
type = ...
class ContactList(models.MOdel):
system = models.ForeignKey(System)
contacts = models.ManyToManyField(Contact)
这意味着ContactList表中的每一行都是系统表中特定机器与联系表中联系人列表之间的关系