2

所以,我仍然是 Django 的菜鸟,我想知道如何执行以下操作:

所以可以说我有类似下面的代码:

class UserProfile(models.Model):
    #Some fields
class UserProfileOther(models.Model):
    #Some other fields that I want in another table for organization
    user_profile = models.OneToOneField(UserProfile)

我现在如何创建一个包含上述两个模型的表单?

4

3 回答 3

3

这种问题就是内联表单集的设计目的。

于 2012-07-17T05:27:36.457 回答
2

您可以创建两个单独的 ModelForm 类。但在您看来,您必须为其实例添加前缀。

def viewname(request):
    if request.method == 'POST':
        form1 = forms.YourForm(request.POST, prefix="form1")
        form2 = forms.YourOtherForm(request.POST, prefix="form2")
        if form1.is_valid() and form2.is_valid():
            # process valid forms
    else:
        form1 = forms.YourForm(prefix="form1")
        form2 = forms.YourOtherForm(prefix="form2")

    ....

使用前缀可确保名称相似的字段不会混淆。

于 2012-07-17T00:43:37.527 回答
0

我这样做的方式是基于第一个模型创建一个表单,然后基于继承第一个表单的第二个模型创建一个表单。意义:

类 UserProfileForm(ModelForm): ...

类 UserProfileOtherForm(UserProfileForm): ...

并传递UserProfileOtherForm到表单模板。它对我有用。不确定是否有更简单的方法。

于 2012-07-16T21:49:34.153 回答