小编Tim*_*Tim的帖子

django:如何从包含foreignkeys的多个模型中创建一个表单

我想在一个使用多个模型的页面上创建一个表单.模型互相参考.我无法获取表单进行验证,因为我无法弄清楚如何将表单中使用的两个模型的id添加到表单中以验证它.我在模板中使用了一个隐藏的键,但我无法弄清楚如何使它在视图中工作

我的代码如下:

观点:

def the_view(request, a_id,):

  if request.method == 'POST':

     b_form= BForm(request.POST)
     c_form =CForm(request.POST)
     print "post"
     if b_form.is_valid() and c_form.is_valid():
        print "valid"
        b_form.save()
        c_form.save()
        return HttpResponseRedirect(reverse('myproj.pro.views.this_page'))
  else:
     b_form= BForm()
     c_form = CForm()
     b_ide = B.objects.get(pk=request.b_id)
     id_of_a = A.objects.get(pk=a_id)
  return render_to_response('myproj/a/c.html', 
{'b_form':b_form, 
 'c_form':c_form, 
 'id_of_a':id_of_a, 
  'b_id':b_ide     })
Run Code Online (Sandbox Code Playgroud)

楷模

class A(models.Model):
    name = models.CharField(max_length=256, null=True, blank=True)
    classe = models.CharField(max_length=256, null=True, blank=True)

   def __str__(self):
      return self.name


class B(models.Model):

    aid = models.ForeignKey(A, null=True, blank=True)
    number =  models.IntegerField(max_length=1000)
    other_number =  models.IntegerField(max_length=1000)


class C(models.Model):
   bid = models.ForeignKey(B, …
Run Code Online (Sandbox Code Playgroud)

forms django foreign-keys models

4
推荐指数
1
解决办法
4121
查看次数

标签 统计

django ×1

foreign-keys ×1

forms ×1

models ×1