首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我的django 2.0.5商店项目没有反向匹配url错误

我的django 2.0.5商店项目没有反向匹配url错误
EN

Stack Overflow用户
提问于 2018-11-19 13:55:34
回答 1查看 450关注 0票数 0

我工作在一个django 2.0.5项目建立一个电子商务商店使用django商店,我得到一个没有反向匹配的网址错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Reverse for 'cart_add' with arguments '('',)' not found. 1 pattern(s) tried: 
['cart\\/add\\/(?P<product_id>[0-9]+)\\/$']

myshop/cart/urls.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.urls import path
from . import views
app_name = 'cart'
urlpatterns = [
    path('', views.cart_detail, name='cart_detail'),
    path('add/<int:product_id>/', views.cart_add, name='cart_add'),
    path('remove/<int:product_id>/', views.cart_remove, name='cart_remove'),

]

myshop/cart/views.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.shortcuts import render, redirect, get_object_or_404
from django.views.decorators.http import require_POST
from shop.models import Product
from .cart import Cart
from .forms import CartAddProductForm
@require_POST
def cart_add(request, product_id):
    cart = Cart(request)
    product = get_object_or_404(Product, id=product_id)
    form = CartAddProductForm(request.POST)
    if form.is_valid():
        cd = form.cleaned_data
        cart.add(product=product,
                 quantity=cd['quantity'],
                 update_quantity=cd['update'])
    return redirect('cart:cart_detail')
def cart_remove(request, product_id):
    cart = Cart(request)
    product = get_object_or_404(Product, id=product_id)
    cart.remove(product)
    return redirect('cart:cart_detail')
def cart_detail(request):
    cart = Cart(request)
    for item in cart:
        item['update_quantity_form'] = CartAddProductForm(
                          initial={'quantity': item['quantity'],
                          'update': True})
    return render(request, 'cart/detail.html', {'cart': cart})

myshop/cart/templates/cart/detail.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{% extends "shop/base.html" %}
{% load static %}

{% block title %}
  Your shopping cart
{% endblock %}

{% block content %}
  <h1>Your shopping cart</h1>
  <table class="cart">
    <thead>
      <tr>
        <th>Image</th>
        <th>Product</th>
        <th>Quantity</th>
        <th>Remove</th>
        <th>Unit price</th>
        <th>Price</th>
      </tr>
    </thead>
    <tbody>
      {% for item in cart %}
        {% with product=item.product %}
          <tr>
            <td>
              <a href="{{ product.get_absolute_url }}">
                <img src="{% if product.image %}{{ product.image.url }}{% 
else %}{% static "img/no_image.png" %}{% endif %}">
              </a>
            </td>
            <td>{{ product.name }}</td>
            <td>
              <form action="{% url "cart:cart_add" product.id %}" method="post">
                {{ item.update_quantity_form.quantity }}
                 {{ item.update_quantity_form.update }}
                 <input type="submit" value="Update">
                 {% csrf_token %}
              </form>
             </td>
             <td><a href="{% url "cart:cart_remove" product.id 
%}">Remove</a></td>
            <td class="num">${{ item.price }}</td>
            <td class="num">${{ item.total_price }}</td>
          </tr>
        {% endwith %}
       {% endfor %}
      <tr class="total">
        <td>Total</td>
        <td colspan="4"></td>
        <td class="num">${{ cart.get_total_price }}</td>
       </tr>
    </tbody>
  </table>
  <p class="text-right">
    <a href="{% url "shop:product_list" %}" class="button light">Continue 
shopping</a>
    <a href="{% url "orders:order_create" %}" class="button">
      Checkout
   </a>
  </p>
{% endblock %}

myshop/urls.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.conf import settings
from django.conf.urls.static import static

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('orders/', include('orders.urls', namespace='orders')),
    path('cart/', include('cart.urls', namespace='cart')),
    path('', include('shop.urls', namespace='shop')),
]
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL,
                          document_root=settings.MEDIA_ROOT)

我正在写一本书,django 2的例子,一开始程序是工作的,我只是不知道是什么改变了,我不能跟踪错误

EN

回答 1

Stack Overflow用户

发布于 2018-11-19 14:13:42

您没有在{% url "cart:cart_add" product.id %}中提供任何ID,您只提到了参数的名称。试试{% url "cart:cart_add" product.id=product.id %}

为了更好的可读性,最好将URL模式中的product.id重命名为id。然后使用{% url "cart:cart_add“id=product.id %}

也不需要将您的urls称为cart_addcart_detail。它们已经在cart名称空间中,只需将它们称为adddetail

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53376176

复制
相关文章
Django之URL反向解析
反向解析的应用场景,是因为在软件开发初期,url地址的路径设计可能并不完美,后期需要进行调整,如果项目中很多地方使用了该路径,一旦该路径发生变化,就意味着所有使用该路径的地方都需要进行修改,这是一个非常繁琐的操作。
仙人技术
2020/06/28
1.9K0
django-URL匹配(二)
在newwebsite目录下:python manage.py startapp book
西西嘛呦
2020/08/26
5160
Django学习笔记之Django的url反向解析
0x00 URL反向解析和三种不同的反向解析方式 Django中提供了关于URL的映射的解决方案,可以做两个方向的使用: 1.普通解析过程:由客户端的浏览器发起一个url请求,Django根据URL解析,把url中的参数捕获,调用相应的视图,获取相应的数据,然后返回给客户端显示。 2.反向解析:通过一个视图的名字,再加上一些参数和值,逆向获取相应的URL。 Django提供了三种不同反向解析处理方式: 1.在模板templates中,使用url标记,如:{% url %} 2.在view中,使用dj
Jetpropelledsnake21
2018/08/01
8400
django2.2 反向解析 admin 的 url
https://docs.djangoproject.com/zh-hans/2.2/ref/contrib/admin/#admin-reverse-urls
卓越笔记
2023/02/18
6150
django2.2 反向解析 admin 的 url
Django 2.1.7 模板 - 动态URL 反向解析
Django 2.1.7 创建应用模板 Django 2.1.7 配置公共静态文件、公共模板路径 Django 2.1.7 模板语言 - 变量、标签、过滤器、自定义过滤器、模板注释 Django 2.1.7 模板继承 Django 2.1.7 模板 - HTML转义 Django 2.1.7 模板 - CSRF 跨站请求伪造 Django 2.1.7 模板 - 图片验证码的实现
Devops海洋的渔夫
2019/07/02
1.3K0
Django 2.1.7 模板 - 动态URL 反向解析
Django url 反向解析 和 命令空间
对于高质量的Web 应用来说,使用简洁、优雅的URL 模式是一个非常值得重视的细节。Django 让你随心所欲设计你的URL,不受框架束缚。
KEVINGUO_CN
2020/03/17
2.4K0
django-URL反向解析Reverse(九)
reverse(viewname,urlconf=None,args=None,Kwargs=None,current_app=None)
西西嘛呦
2020/08/26
5260
33. Django 2.1.7 模板 - 动态URL 反向解析
在前面的篇章中,设置视图view的url是写死一个路径path的,当url的path发生需要改变的时候,就会需要去重写很多地方。
Devops海洋的渔夫
2022/01/17
5410
33. Django 2.1.7 模板 - 动态URL 反向解析
Pycharm开发Django项目URL分发器
视图一般都写在app的views.py中。并且视图的第一个参数永远都是request(一个HttpRequest)对象。这个对象存储了请求过来的所有信息,包括携带的参数以及一些头部信息等。在视图中,一般是完成逻辑相关的操作。比如这个请求是添加一篇博客,那么可以通过request来接收到这些数据,然后存储到数据库中,最后再把执行的结果返回给浏览器。视图函数的返回结果必须是HttpResponseBase对象或者子类的对象。示例代码如下:
用户2200417
2021/10/22
8020
nginx路径匹配_url路径匹配
一、前言 一般我们经常在访问网站时,通常会遇到输入某个页面的网址时,出现路由的转发,重定向等。可能访问的是一个网址,出来的时候就显示的是另外的地址。 这种情况下,通常属于nginx的页面跳转。
全栈程序员站长
2022/11/19
6.4K0
nginx路径匹配_url路径匹配
我没有项目经验,怎么办?
很多同学有疑问:到处都在问我做过什么项目,可我没有项目经验怎么办?在企业里似乎每天都在打杂,想跳槽又没有拿的出手的项目,感觉心好虚。有些同学做过小项目,但感觉“简单”“低级”,怕被人鄙视。以上种种问题,都导致在公司里没有存在感,简历上也不知道写什么,工作跳槽两无力。今天我们系统解答一下:
接地气的陈老师
2019/12/09
6210
我没有项目经验,怎么办?
很多同学有疑问:到处都在问我做过什么项目,可我没有项目经验怎么办?在企业里似乎每天都在打杂,想跳槽又没有拿的出手的项目,感觉心好虚。有些同学做过小项目,但感觉“简单”“低级”,怕被人鄙视。以上种种问题,都导致在公司里没有存在感,简历上也不知道写什么,工作跳槽两无力。今天我们系统解答一下:
数据森麟
2019/09/27
6180
宠物商店项目
宠物商店eclipse控制台版本 宠物系统 特点:处理复杂业务逻辑 业务层必须加事务管理 主要业务功能: 1. 宠物主人 --登录 登录后 1:购买宠物(先查询出库存宠物) (1)扣除宠物主人元宝数 (2)添加宠物商店余额 (3)更新宠物表,store_id设为null,ownerid是主人ID Pet pet = petDao.findPetById(id); pet.setOwnerId(null);
软件小生活
2021/08/30
8860
Django的URL路由系统
URL配置就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图之间的映射表.你就是以这种方式告诉Django,对于哪个URL调用的这段代码.
py3study
2020/01/20
1.4K0
django 获取 request 的 url
    print(request.get_full_path())                             ^ SyntaxError: invalid character in identifier
卓越笔记
2023/02/18
2K0
django url 正则
正则表达式 (或 regexes ) 是通用的文本模式匹配的方法。 Django URLconfs 允许你 使用任意的正则表达式来做强有力的URL映射,不过通常你实际上可能只需要使用很少的一 部分功能。 这里是一些基本的语法。
一朵灼灼华
2022/08/05
5470
Eclipse项目红色叹号且没有错误的包
直接右击项目–>build path–>Configure build path找到Libraries这一项 对于一般的问题,看看哪个jar包报错删了clean一下就好了。
程裕强
2022/05/06
1.2K1
Eclipse项目红色叹号且没有错误的包
django2.0.5 数据库的基本操作(不断整理中)
关于数据库的创建等相关步骤,请参考之前的文章,这里我们只做views.py中的操作分享。
学到老
2019/01/25
8400
django2.0.5 数据库的基本操作(不断整理中)
Pycharm开发Django项目关于URL组成部分详解
注意:URL中的所有字符都是ASCII字符集,如果出现非ASCII字符,比如中文,浏览器会进行编码再进行传输。
用户2200417
2021/10/17
5930
Django官方为什么没有标准项目结构
Django官方并没有提供标准的项目结构,于是网上众说纷纭,百花齐放,一千个读者有一千个哈姆雷特。那我们该怎么设计项目结构呢?在回答这个问题之前,先了解一下Django原生的目录和文件都是干嘛的。
dongfanger
2020/12/10
1.1K0
Django官方为什么没有标准项目结构

相似问题

django url没有反向匹配

20

Django url -没有反向匹配

13

Django url反向匹配错误

10

Django不匹配URL,没有反向匹配

31

Django没有反向匹配错误

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文