当使用forms.ModelForm时,Django在任一模型中显示M2M字段

时间:2010-04-22 09:38:49

标签: django django-forms

我正在使用forms.ModelForm来创建我的表单。我希望能够在两种模型形式中显示多个字段,我该怎么做?

如果在模型中定义了很多关系,它就很好并且只是出现但是如果它不在模型中(但仍然通过其他模型链接)则不会出现。我该如何让它出现?

希望这是有道理的。

由于

1 个答案:

答案 0 :(得分:0)

使用this third party model field class。它是一个四行的子类,它是常规ManyToMany类的子类,但指示Django不要为第二个关系创建一个单独的表。

通常在第一个模型上创建关系,显式指定数据库表名(“db_table”选项):

class FirstModel(models.Model):
    second_model = ManyToManyField('SecondModel', related_name='second_model', db_table=u'TABLE_FOR_FIRST_AND_SECOND_MODEL')
    ...

对于第二个模型使用ManyToManyField_NoSyncdb,所以它不会尝试创建第二个表:

class SecondModel(models.Model):
    first_model = ManyToManyField_NoSyncdb('FirstModel', related_name='first_model', db_table=u'TABLE_FOR_FIRST_AND_SECOND_MODEL')
    ...

有关更多信息,请参阅the right-hand description on django snippets