是否有可能ModelForm在django中包含多个模型?我正在尝试创建个人资料编辑表单.所以我需要包含User模型和 UserProfile模型中的一些字段.目前我正在使用这样的2个表单
class UserEditForm(ModelForm):
class Meta:
model = User
fields = ("first_name", "last_name")
class UserProfileForm(ModelForm):
class Meta:
model = UserProfile
fields = ("middle_name", "home_phone", "work_phone", "cell_phone")
Run Code Online (Sandbox Code Playgroud)
有没有办法将这些整合到一个表单中,或者我只需要创建一个表单并处理数据库加载并保存自己?
我试图找到一种简单的方法来创建允许同时编辑具有外键关系的两个模型的表单。
经过一些研究,似乎内联表单集非常接近我想要做的。
django 文档提供了这个例子:
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
title = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)
进而,
>>> from django.forms import inlineformset_factory
>>> BookFormSet = inlineformset_factory(Author, Book, fields=('title',))
>>> author = Author.objects.get(name='Mike Royko')
>>> formset = BookFormSet(instance=author)
Run Code Online (Sandbox Code Playgroud)
让我们假设Author有第二个字段,city。我可以使用fields参数在表单中添加一个城市吗?
如果内联表单集不是要走的路,是否有另一种方法可以生成这种联合表单?
经过更多的研究,我找到了django 模型表单。包括来自 2009 年相关模型的字段,这暗示内联表单集可能不是要走的路。
如果有不同工厂的默认解决方案,我会非常感兴趣。