Как редактировать информацию о пользователе на пользовательской странице администратора
Я новичок в разработке на python и пытаюсь добавить функцию в мое приложение, которая позволяет сотрудникам изменять некоторую информацию об обычных пользователях. поле, которое будет редактироваться, следующее:
class ScientificInfo(models.Model):
id = models.AutoField(primary_key=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
info1 = models.CharField(max_length=64, choices=SURVEY_CHOICES)
info2 = models.CharField(max_length=64, choices=SURVEY_CHOICES)
info3 = models.CharField(max_length=64, choices=SURVEY_CHOICES)
Я создал приборную панель для администратора, которая отображает имена пользователей и при нажатии на их имя перенаправляет на детальное представление этого пользователя. вот представление, которое я написал для детальной страницы:
class ScientificInfoView(DetailView):
model = ScientificInfo
template_name = 'reg/scientific-info.html'
def edit_form(self, request, user_id):
user = get_object_or_404(ScientificInfo, pk=user_id)
if request.method == 'POST':
form = ScientificInfoForm(request.post, instance=user)
if form.is_valid():
form.save()
redirect('scientific-info')
else:
form = ScientificInfoForm(instance=user)
return render(request, 'reg/scientific-info.html', {'form': form})
Однако, когда я нахожусь внутри детального просмотра, форма не отображается. только кнопка отправки видна, и когда я нажимаю на нее, я получаю 504 ошибку! на данный момент шаблон прост как этот:
{{object.info1}}
{{object.info2}}
{{object.info3}}
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{form}}
<button type="submit">submit</button>
</form>
и наконец вот моя форма:
class ScientificInfoForm(forms.ModelForm):
class Meta:
model = ScientificInfo
fields = ['info1', 'info2', 'info3']
что я делаю неправильно? и есть ли лучший способ сделать это?