首页 > 解决方案 > Django - 为管理员创建多对多内联对象,类似于 inlinetabular

问题描述

我想允许用户创建内联/即时创建模型 A 的对象,该对象与模型 B 的字段具有多对多关系,同时创建对象 B ......基本上就像 TabularInline 允许你做的那样在管理员上。

标签: djangodjango-forms

解决方案


好的,这将帮助你 models.py

class A(models.Model):
    fileds of A

class B(models.Model):
    name= models.CharField(max_length=50,null=True,blank=True)
    a= models.ForeignKey('Voyage',on_delete=models.CASCADE)

form.py 添加这个:

inlineForm = inlineformset_factory(A,B,
      fields=('name'),
      can_delete=False,extra=4,max_num=4        
      )

视图.py:

from .form import inlineForm

def test(request,id):
    obj=A.objects.get(id=id)
    if request.method == 'POST':
        form= inlineForm(request.POST,request.FILES,instance=obj)
        if form.is_valid():
            form.save()
            return redirect(reverse('core:simple'))
    form = inlineForm(instance=obj)
    return render(request,'obj/inlineForm.html',{'formset':form})

推荐阅读