[英]Django generic.UpdateView NOT updating values upon successful POST
下面我嘗試更新一個特定的表格(OrganizationForm):
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
我認為您的代碼幾乎沒有問題,請檢查以下內容:
如果要更新數據庫中的現有數據,則應覆蓋“ PUT ”方法而不是“ POST ”。 像這樣的def put (self, request):
檢查允許將請求保存在數據庫中的OrganizationForm
類中的表單字段。
檢查form_valid()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.