簡體   English   中英

Django generic.UpdateView 在 POST 成功后不更新值

[英]Django generic.UpdateView NOT updating values upon successful POST

下面我嘗試更新一個特定的表格(OrganizationForm):

  1. 模板正在使用表單字段和字段中的現有值進行渲染。
  2. 提交表單后,POST 請求成功。

ISSUE:更改未保存到數據庫。

# 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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM