如何将窗体中的选定对象从一个视图移动到另一个视图?

2024-10-02 02:37:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Django的新手,希望你能帮助我。

我有一个名为克减的模型,带有3ForeignKey。我有两个表单(每个表单有一个或两个ModelChoiceField)分布在多个视图中。在最后一个视图中,我希望恢复所有这些实例,以创建一个克减对象并将其保存在数据库中

我试图通过URL传递对象,但我不确定它是如何工作的。 我不想使用这些会话

models.py

class Derogation(models.Model):
    createur = models.ForeignKey(Createur, on_delete=models.CASCADE)
    individu = models.ForeignKey(Individu, on_delete=models.CASCADE)
    raison = models.ForeignKey(Raison, on_delete=models.CASCADE)

forms.py

class IndividuForm(forms.Form):
    individu = forms.ModelChoiceField(queryset=Individu.objects.order_by('nom'), empty_label="")

class RaisonForm(forms.Form):
    raison = forms.ModelChoiceField(queryset=Raison.objects.all(), empty_label="")

class CreateurForm(forms.Form):
    createur = forms.ModelChoiceField(queryset=Createur.objects.all(), empty_label="")

views.py

def index(request):
    individu_form = IndividuForm(request.POST or None)
    if individu_form.is_valid():
        individu = individu_form()
        return HttpResponseRedirect('/raison/%s' % individu) #Not sure
    return render(request, 'derog_bv/index.html', {'individu_form':individu_form})

def raison(request, individu):
    raison_form = RaisonForm(request.POST or None)
    createur_form = CreateurForm(request.POST or None)
    if raison_form.is_valid() and createur_form.is_valid():
        raison = raison_form()
        createur = createur_form()
        return HttpResponseRedirect('/recap/%s%s%s' %individu %raison %createur) #really not sure
    return render(request, 'derog_bv/raison.html', {'raison_form':raison_form})

def recap(request, individu, raison, createur):
    #Here I want to save my Derogation object
    return render(request, 'derog_bv/recap.html')

Tags: pyformreturnonmodelsrequestformsdelete

热门问题