Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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
Python Django URL不接受参数_Python_Django_Django Urls - Fatal编程技术网

Python Django URL不接受参数

Python Django URL不接受参数,python,django,django-urls,Python,Django,Django Urls,我真的很难理解向Django URL发送参数和keword参数的方法。以下是案例研究: 我有一个使用通用基本视图的视图: class CartView(View): def get(self, request, *args, **kwargs): item = request.GET.get('item') qty = request.GET.get('qty') print item, qty return HttpResponse

我真的很难理解向Django URL发送参数和keword参数的方法。以下是案例研究:

我有一个使用通用基本视图的视图:

class CartView(View):
   def get(self, request, *args, **kwargs):
       item = request.GET.get('item')
       qty = request.GET.get('qty')
       print item, qty
       return HttpResponseRedirect('/')
通过上面的视图,我可以使用url中的aurguments,比如
“localhost:8000/cart/?item=4&qty=200”
,它可以在终端中打印带有数量的项目

一旦我对代码进行了如下更改:

from carts.models import Cart, CartItem
from products.models import Variation


class CartView(View):
    def get(self, request, *args, **kwargs):
        item_id = request.GET.get('item')
        if item_id:
            item_instance = get_object_or_404(Variation, id=item_id)
            qty = request.GET.get('qty')
            cart = Cart.objects.all()[0]
            cart_item = CartItem.objects.get_or_create(cart=cart, item=item_instance)[0]
            cart_item.quantity = qty
            cart_item.save()
            print cart_item
        return HttpResponseRedirect('/')
使用与传递参数相同的方法,如“localhost:8000/cart/?item=4&qty=200”它向我显示了错误:

404未找到页面没有与给定查询匹配的变体

url.py

urlpatterns = [
    url(r'^home/$', 'newsletter.views.home', name='home'),
    url(r'^contact/$', 'newsletter.views.contact', name='contact'),
    url(r'^about/$', 'project.views.about', name='about'),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^accounts/', include('registration.backends.default.urls')),
    url(r'^cart/$', CartView.as_view(), name='cart'),
    url(r'^', include('products.urls')),
    url(r'^categories/', include('products.urls_categories')),
404找不到页面

没有与给定查询匹配的变体

此消息来自您的热线:

item_instance = get_object_or_404(Variation, id=item_id)

这意味着您没有与给定的
id

匹配的
Variation
对象,因为您没有id为4I的Variation对象,即使产品具有Variation对象,我也通过了参数。同样的问题。其次,我创建了一个post_save信号来转换所有带有默认变量的产品,以便在carts中更好地处理它。现在我只是在变体上实现了cart,这是我的错误,我删除了一些测试产品,ID被修改到10。问题是,若ID保存了1到10,并且我们删除了过去的产品,那个么新保存的产品的ID将超过10。我去manage.py shell并在那里导入了变体。然后在变量中保存Variation.objects.all().first()。当我调用variable.id时,第一个产品显示为14。所以当我用item=14传递参数时,它接受了它@你是对的。把你的答案贴出来,我会记下来的。