Как редактировать информацию о пользователе на пользовательской странице администратора

Я новичок в разработке на 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']

что я делаю неправильно? и есть ли лучший способ сделать это?

Вернуться на верх