Django - 为相关模型组合表单

eco*_*utu 12 django-forms

是否有共同的方法/最佳实践/任何方法来组合跨多个相关模型的表格?

我想在同一页面上创建/编辑模型对象以及其他相关模型对象.基本上,能够创建/编辑一个模型实例和另一组与外键相关的模型实例.

我知道,这不是一个很好的解释.

class Person(models.Model):
    name = models.CharField(max_length=64, unique=True)

class PhoneNumber(models.Model):
    person = models.ForeignKey(Person)
    description = models.CharField(max_length=64, blank=True, null=True) 
    number = models.CharField(max_length=32, blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

我希望能够使用单个表单/页面创建/编辑一个人及其所有相关联的电话号码.

我在使用这个嵌套的表单示例之前已经完成了这个,但它似乎非常hackish.

Iss*_*lly 9

是! 使用formsets,特别是https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#inline-formsets

  • 是的,将表单和formset传递给页面,然后将它们放在相同的表单中,并在您的视图中,检查form.is_valid()和formset.is_valid()然后执行form.save()和formset.save( ).如果字段名称中存在任何重叠,则在定义表单时可能必须添加前缀参数.我将查看我的操作系统代码以获取示例. (3认同)