Django奇怪的挪威人
我还没有在网上找到解决办法。据所有人说,这应该是工作,但我仍然得到这个错误 url.pyDjango奇怪的挪威人,django,Django,我还没有在网上找到解决办法。据所有人说,这应该是工作,但我仍然得到这个错误 url.py urlpatterns = [ url(r'^orders/', include('project.orders.urls', namespace='orders')), ...] urlpatterns = [ ... url( regex=r'^create/$', view=views.CreateOrderView.as_view()
urlpatterns = [
url(r'^orders/', include('project.orders.urls', namespace='orders')),
...]
urlpatterns = [
...
url(
regex=r'^create/$',
view=views.CreateOrderView.as_view(),
name='create'
),
...]
class UploadSampleSheetView(LoginRequiredMixin, FormView):
def post(self, request):
...
if form.is_valid():
...
return reverse("orders:create", kwargs={'sample_sheet':sample})
class CreateOrderView(LoginRequiredMixin, CreateView):
def get(self, request):
return render(request, 'pages/complete_order.html')
订单/url.py
urlpatterns = [
url(r'^orders/', include('project.orders.urls', namespace='orders')),
...]
urlpatterns = [
...
url(
regex=r'^create/$',
view=views.CreateOrderView.as_view(),
name='create'
),
...]
class UploadSampleSheetView(LoginRequiredMixin, FormView):
def post(self, request):
...
if form.is_valid():
...
return reverse("orders:create", kwargs={'sample_sheet':sample})
class CreateOrderView(LoginRequiredMixin, CreateView):
def get(self, request):
return render(request, 'pages/complete_order.html')
订单/视图.py
urlpatterns = [
url(r'^orders/', include('project.orders.urls', namespace='orders')),
...]
urlpatterns = [
...
url(
regex=r'^create/$',
view=views.CreateOrderView.as_view(),
name='create'
),
...]
class UploadSampleSheetView(LoginRequiredMixin, FormView):
def post(self, request):
...
if form.is_valid():
...
return reverse("orders:create", kwargs={'sample_sheet':sample})
class CreateOrderView(LoginRequiredMixin, CreateView):
def get(self, request):
return render(request, 'pages/complete_order.html')
错误消息是
对于参数为“()”且关键字参数为“{sample_sheet':sample:sample object}”的“create”,则相反。已尝试1个模式:[“订单/创建/$”]
但是当我转到那个url(/orders/create/)时,页面就在那里了
我试过了
return reverse("orders:create", kwargs={'sample_sheet':sample})
return reverse("create", kwargs={'sample_sheet':sample})
return reverse(orders:create, kwargs={'sample_sheet':sample})
return reverse(CreateOrderView, kwargs={'sample_sheet':sample})
但都不管用。到目前为止,这里的其他答案对我没有帮助,医生也没有。发生了什么事?从下面删除问题中提到的
kwargs
,并将HttpResponseRedirect
重定向到另一个url
return HttpResponseRedirect(reverse("orders:create"))
试试这个:
return reverse("create")
但我强烈建议你考虑一下你命名路线的方式。
可以将此调用为“order\u create
”,这样,如果您有更新或删除视图,您将分别创建“order\u update
”和“order\u delete
”路由,这将使您的应用程序更易于维护
您应该避免使用def post()
,因为Django处理表单的方式非常好。当您使用FormView
类时,很多东西都是为您准备的,您可以使用UpdateView
和CreateView
等等。例如:
from django.urls import reverse_lazy
from django.views import generic
from django.contrib.auth.mixins import LoginRequiredMixin
class SocieteUpdateView(LoginRequiredMixin, generic.UpdateView):
model = Societe
form_class = SocieteForm
template_name = 'crud/societe/update.html'
success_url = reverse_lazy('societe_list')
这个解决方案是可行的,但我想用
kwargs={'sample_sheet':sample}
中的数据呈现我的模板。有什么想法吗?谢谢你的回答!我很难找到通用视图类的好文档/示例。每个类的django文档似乎只是列出了每个类中的mixin。有什么地方可以让我对这些课程有更多的了解吗?