Django generic.UpdateView НЕ обновляет значения после успешного POST

Ниже я пытаюсь обновить определенную форму (OrganizationForm):

  1. Шаблон отображается с полями формы и существующими значениями в полях.
  2. После отправки формы POST запрос успешен.

ВЫПУСК: Изменения не сохраняются в БД.

# Views.py

class OrganizationDetails(LoginRequiredMixin, UpdateView):
    login_url = '/user/login/'
    redirect_field_name = 'redirect_to'
    model = Organization
    form_class = OrganizationForm
    template_name = 'organization/org_details.html'
    success_url = reverse_lazy("organization")

    def get_object(self):
        queryset = super().get_queryset()
        return queryset.get(pk=self.request.user.organization.pk)

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        curr_org = self.request.user.organization
        heading = TermsHeading.objects.filter(organization=curr_org)
        content = TermsContent.objects.filter(heading__organization=curr_org)
        context['headings'] = heading

        data = dict()
        for item in heading:
            x = []
            for desc in content:
                if desc.heading == item:
                    x.append(desc)
            data[item] = x
        context['data'] = data
        return context

Что я пробовал:

Я переопределил метод 'POST' в классе следующим образом:


    # def post(self, request):
    #     print(request.POST)
    #     form = OrganizationForm(request.POST)
    #     if form.is_valid():
    #         form.save()
    #         print("Valid and Saved")
    #     else:
    #         print(form.errors)
    #     return super(OrganizationDetails, self).post(request)

Терминальный выход:

[16/Jul/2022 02:44:15] "GET /user/myorganization/ HTTP/1.1" 200 29699
Not Found: /favicon.ico
[16/Jul/2022 02:44:15] "GET /favicon.ico HTTP/1.1" 404 5037
[16/Jul/2022 02:44:25] "POST /user/myorganization/ HTTP/1.1" 302 0
[16/Jul/2022 02:44:25] "GET /user/myorganization/ HTTP/1.1" 200 29699
Not Found: /user/myorganization/Roboto-Regular.ttf
[16/Jul/2022 02:44:25] "GET /user/myorganization/Roboto-Regular.ttf HTTP/1.1" 404 6841
[16/Jul/2022 02:44:25] "GET /user/myorganization/ HTTP/1.1" 200 29699

Пожалуйста, помогите мне с вышеуказанным, спасибо.

Проверьте form_valid() в официальной документации .

Кроме того, в get_object(), похоже, есть ошибки. Возможно, вы сможете использовать его следующим образом.

def get_object(self):
    return self.request.user.organization

Я думаю, что в вашем коде есть несколько вещей, которые идут не так, и проверьте следующее :

  1. Если вы обновляете существующие данные в БД, то вам следует переопределить метод 'PUT' вместо 'POST'. Примерно так def put (self, request):

  2. Проверьте поле формы в классе OrganizationForm, которое позволяет сохранить запрос в БД.

  3. Проверьте form_valid().

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