Во-первых, у меня есть модель с именем Account, которая связана с нативной моделью User в Django через одно-одно поле.Я создаю панель администратора, цель которой состоит в том, чтобы иметь возможность редактировать информацию о зарегистрированных учетных записях (пользователях) с помощью форм на странице своего внутреннего профиля.
Мне удалось создать представление с использованием двух форм (форма дляизменение модели пользователя и формы для изменения модели учетной записи), но поскольку экземпляр имеет значение request.user
, я могу редактировать только свою собственную информацию в различных профилях.Я не уверен, как связать ПК для учетной записи в код.
Конечная цель, например: http://path/to/user/profile/1 - Возможность редактировать информацию учетной записи 1 http://path/to/user/profile/2 - Возможностьредактировать информацию учетной записи 2
Я пытался добавить pk в определение теста, но безуспешно.
urls.py
urlpatterns = [
path("test/<int:pk>", views.test, name="test"),
]
views.py
def test(request, pk):
if request.method == 'POST':
u_form = UserEditPersonalForm(request.POST, instance=request.user)
a_form = AccountEditPersonalForm(request.POST, instance=request.user.account)
if u_form.is_valid() and a_form.is_valid():
u_form.save()
a_form.save()
messages.success(request, f'Account updated')
return redirect('/cms/test/')
else:
u_form = UserEditPersonalForm(instance=request.user)
a_form = AccountEditPersonalForm(instance=request.user.account)
context = {
'u_form': u_form,
'a_form': a_form
}
return render(request, 'cms/test.html', context)