Я хочу добавить параметр edit в шаблон, который просто извлекает данные из модели и отображает их.При нажатии кнопки edit форма, которая была ранее заполнена и сохранена, должна отображаться как заполненная сохраненными данными.Но в моем случае форма отображается с пустыми полями и с надписью «Это поле обязательно» над каждым полем.Как отобразить форму в редактируемом режиме с предварительно заполненными полями?
Это представление для первого сохранения данных:
@login_required
def addprofileView(request):
if request.method == "POST":
form = UserProfileForm(request.POST, request.FILES)
if form.is_valid():
new_user_profile = form.save(commit=False)
new_user_profile.user = request.user
new_user_profile.save()
return redirect('add_license')
else:
form = UserProfileForm()
return render(request, 'addprofile.html', {'form': form})
И это представление для редактирования, которое должновернуть предварительно заполненную форму:
@login_required
def editprofileView(request, pk):
ac = get_object_or_404(Account, pk=pk)
if request.method == "POST":
form = UserProfileForm(request.POST, instance=ac)
if form.is_valid():
ac = form.save(commit=False)
ac.user = request.user
ac.save()
return redirect('view_profile', ac.pk)
else:
form=UserProfileForm(instance=ac)
return render(request, 'addprofile.html', {'form': form})
@login_required
def ProfileView(request, pk):
profile = Account.objects.filter(pk = pk)
return render(request, 'userprofile.html', {'pr': profile})
Что я делаю не так?
Шаблон, который перенаправляет на editprofileView:
{% block content %}
{% for p in pr %}
Name: {{ request.user.username }}
Mobile: {{ p.mobile }}
city: {{ p.city }}
building no: {{ p.building_no }}
state: {{ p.state }}
ZIP: {{ p.zip }}
Country: {{ p.country }}
Sex: {{ p.sex }}
<form action="{% url 'edit_profile' p.pk %}" method="post">
{% csrf_token %}
<input type="submit" value="Edit">
</form>
{% endblock %}
URL-адрес действия в этом шаблонеотправляет атрибут учетной записи pk в editprofileView.