我正在制作一个视图,如果再次对其进行编辑,它将预先填充其字段,否则将提供空白的模型表单。
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})
,但它不会预先填充其字段,否则它可以正常工作。谁能提供建议
答案 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