使两个对象的管理表单中的许多字段都可编辑

时间:2019-08-24 20:33:56

标签: django django-models

我有一个Django模型,其中有许多字段将其与另一个Django模型对象相关联。

class B(models.Model):
    name = models.CharField(max_length=100)

class A(models.Model):
    name = models.CharField(max_length=100)
    models.ManyToManyField(B)

如果我查看A的管理表单,我会看到名称字段和列出所有B的多对多小部件。

如果我查看B的管理表单,我只会看到名称小部件。

是否有一种方法允许两个模型的管理表单都具有多对多小部件。我想在看B时添加A,而我在看A时添加B。

可以做到吗?

1 个答案:

答案 0 :(得分:0)

您可以使用once: true来做到这一点。 Django模型的MultipleChoiceField表示为ManyToManyField

检查参考。

  1. https://docs.djangoproject.com/en/2.2/topics/db/examples/many_to_many/
  2. https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#field-types
  3. https://docs.djangoproject.com/en/dev/ref/forms/widgets/#setting-arguments-for-widgets

注意:在以A的形式添加B时,您应该首先创建B实例,然后必须将A添加到B。否则会出现错误,因为B实例需要在多对多之前具有主键值关系可以使用。