![](/img/trans.png)
[英]Django login redirect_field_name 'next' forces new session
[英]Django 'redirect_field_name' why it returns to index.html page?
填寫表格后,當我點擊保存重定向到“clinichospital_list.html”,但它需要到 index.html。 它是 view.py 類
class ClinicHospitalCreateView(CreateView):
redirect_field_name = 'clinichospital_detail.html'
form_class = ClinicHospitalForm
model = ClinicHospital
它是 urls.py
path(r'',views.AboutView.as_view(),name = 'about'),
**path(r'^list/$',views.ClinicHospitalListView.as_view(),name ='clinichospital_list' ),**
path(r'^clinichospital/(?P<pk>\d)/$',views.ClinicHospitalDetailView.as_view(),name = 'clinichospital_detail'),
path(r'^clinichospital/new/$',views.ClinicHospitalCreateView.as_view(),name = 'clinichospital_new'),
path(r'^clinichospital/(?P<pk>\d)/edit/$',views.ClinicHospitalUpdateView.as_view(), name = 'clinichospital_eidt'),
path(r'^clinichospital/(?P<pk>\d)/remove/$',views.ClinicHospitalDeleteView.as_view(),name = 'clinichospital_remove'),
它是 forms.py
<form class="clinic-form" method="post">
{% csrf_token %}
{{form.as_p}}
<button type="submit" class="save btn btn-default" name="button">Save</button>
據我所知, CreateView
沒有redirect_field_name
,因此它不會在CreateView
背后的邏輯中考慮到這一點。
此外,您在這里將模板與路徑混淆了。 在 Django 中,路徑通常沒有.html
(或其他)擴展名。 多個路徑可以呈現相同的模板,因此無論如何它都沒有多大意義。
可以覆蓋get_success_url(..)
方法[Django-doc]並返回對應的路徑:
from django.urls import reverse
class ClinicHospitalCreateView(CreateView):
form_class = ClinicHospitalForm
model = ClinicHospital
def get_success_url(self):
return reverse('clinichospital_detail', kwargs={'pk': self.object.pk})
請注意,您的路徑使用re_path(..)
語法 [Django-doc]而不是path(..)
語法 [Django-doc] 。 您可以將這些重寫為:
path('',views.AboutView.as_view(), name='about'),
path('list',views.ClinicHospitalListView.as_view(), name='clinichospital_list' ),
path('clinichospital/<int:pk>',views.ClinicHospitalDetailView.as_view(), name='clinichospital_detail'),
path('clinichospital/new/',views.ClinicHospitalCreateView.as_view(), name='clinichospital_new'),
path('clinichospital/<int:pk>/edit/',views.ClinicHospitalUpdateView.as_view(), name='clinichospital_edit'),
path('clinichospital/<int:pk>/remove/',views.ClinicHospitalDeleteView.as_view(), name='clinichospital_remove'),
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.