Modelform не заполняет свое поле текущими значениями - PullRequest
0 голосов
/ 17 декабря 2018

Я создаю представление, которое предварительно заполнит его поле в случае, если оно будет отредактировано, в противном случае будет использоваться пустая форма модели.

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 голосов
/ 17 декабря 2018

Вы можете попробовать вот так:

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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...