Django - 包含多个模型的CreateView

时间:2016-02-22 18:06:19

标签: python django

我可以使用Django CreateViews创建一个向多个表添加数据的表单吗? 我创建了一个名为 UserMeta 的模型来存储我的用户的一些其他信息。

问题

我想创建一个包含CreateViews的视图,该视图显示用于创建新用户(Django User Model)的字段以及基于我的UserMeta模型的一些额外字段:

class UserMeta(models.Model):
    country_code = models.CharField(max_length=30, verbose_name="Nome",
                            help_text="Insert the name of the country")

我需要一个像这样的输出模式:

  

| - 形式

     

| - 输入user.name

     

| - 输入user.username

     

| - 输入用户....

     

| - 输入usermeta.country_code

1 个答案:

答案 0 :(得分:5)

为此目的,您可以使用django-extra-views,一组额外的CBV。

from extra_views import CreateWithInlinesView InlineFormSet

class UserMetaInline(InlineFormSet):
    model = UserMeta    

class UpdateOrderView(CreateWithInlinesView):
    model = User
    inlines = [UserMetaInline,]

虽然这些内联通常用于外键关系,但它们也适用于一对一。