Modelform没有用当前值填充其字段

时间:2018-12-17 11:18:36

标签: django python-3.x django-models django-forms django-views

我正在制作一个视图,如果再次对其进行编辑,它将预先填充其字段,否则将提供空白的模型表单。

def ViewProfile(request,slug):
ProfileResults=Profile.objects.filter(DiaryUser=slug)
if request.method=='POST':
    if Profile.objects.filter(DiaryUser=slug).exists():
        ProfileAlready=get_object_or_404(Profile,DiaryUser=slug)
        form=UpdateProfileForm(request.POST,request.FILES,instance=ProfileAlready)
        if form.is_valid():
            form.save()
    else:
        form=UpdateProfileForm(request.POST,request.FILES)
        if form.is_valid():
            ProfileUpdate=form.save(commit=False)
            ProfileUpdate.DiaryUser=slug
            ProfileUpdate.save()
    return redirect('Display',**{'slug':slug})
else:
    form=UpdateProfileForm()
    return render(request,'Mobile/ViewProfile.html',{'form':form,'slug':slug,'ProfileResults':ProfileResults})

,但它不会预先填充其字段,否则它可以正常工作。谁能提供建议

1 个答案:

答案 0 :(得分:0)

您可以尝试这样:

def ViewProfile(request,slug):

    ProfileAlready=get_object_or_404(Profile,DiaryUser=slug)  # <-- Move this code in outer scope of POST request
    if request.method=='POST':
        # rest of the code
    else:
        form=UpdateProfileForm(instance=ProfileAlready)  # Pass instance here
        # rest of the code 
相关问题