Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django奇怪的挪威人_Django - Fatal编程技术网

Django奇怪的挪威人

Django奇怪的挪威人,django,Django,我还没有在网上找到解决办法。据所有人说,这应该是工作,但我仍然得到这个错误 url.py urlpatterns = [ url(r'^orders/', include('project.orders.urls', namespace='orders')), ...] urlpatterns = [ ... url( regex=r'^create/$', view=views.CreateOrderView.as_view()

我还没有在网上找到解决办法。据所有人说,这应该是工作,但我仍然得到这个错误

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')
订单/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。有什么地方可以让我对这些课程有更多的了解吗?