不能在django中将多对多字段的值插入到其他表中

时间:2015-09-18 07:43:53

标签: python django postgresql django-class-based-views

我正在使用django 1.8。我试图在django中使用CreateView将值插入数据库。我可以将数据插入数据库。问题是插入一个字段的值(多对多)。该字段是插入另一个表。我将在下面简要解释

models.py

 class Model1(models.Model):
    name = models.CharField()
    address = models.CharField()
    first_name = models.ManytoManyField(Model2)

 class Model2(models.Model):
    first_name = models.CharField() 

forms.py

 class sampleForm(forms.ModelForm):
    name = forms.TextInput()
    address = forms.TextInput()
    first_name = forms.TextInput()

views.py

 class Create(CreateView):
    model = Model1
    form = sampleForm
    def form_valid(form):
      form.save()
      return super(Create,self).form_valid(form)

当我尝试将值插入数据库时​​,名称和地址会成功插入到一个表中。 first_name字段需要插入另一个表。但它没有插入。任何人都可以帮我这样做。

1 个答案:

答案 0 :(得分:0)

在您的视图文件中,您可以通过此代码进行此操作

 class Create(CreateView):
    model = Model1
    form = sampleForm
    def form_valid(form):
      form.save(commit=false)
      form.save()
      form.save_m2m()
      return super(Create,self).form_valid(form)