django 为管理员创建多对多对象,与inlinetabular类似

kpbwa7wx  于 2023-01-14  发布在  Go
关注(0)|答案(1)|浏览(107)

我希望允许用户创建内联/动态模型A的对象,该对象与模型B的字段具有多对多的关系,同时创建对象B...基本上就像TabularInline允许您在管理上执行的操作一样。

pvabu6sv

pvabu6sv1#

好的,这会帮助你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        
      )

views.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})

相关问题