Python django错误:django.url.exceptions.NoReverseMatch

Python django错误:django.url.exceptions.NoReverseMatch,python,django,django-templates,django-views,Python,Django,Django Templates,Django Views,我正在为我的公司创建一个股票管理系统。我不知道为什么会出现这样的错误:NoReverseMatch不断地出现在item_edit和item_delete视图或URL中。由于这些错误,我无法完成CRUD视图并修改或删除现有项 错误:“django.url.exceptions.NoReverseMatch:找不到'stock\u management.views.item\u edit'的反向。” 我已经花了很多时间尝试过我的代码。我还尝试从shell中为item_edit和item_delete

我正在为我的公司创建一个股票管理系统。我不知道为什么会出现这样的错误:NoReverseMatch不断地出现在item_edit和item_delete视图或URL中。由于这些错误,我无法完成CRUD视图并修改或删除现有项

错误:“django.url.exceptions.NoReverseMatch:找不到'stock\u management.views.item\u edit'的反向。”

我已经花了很多时间尝试过我的代码。我还尝试从shell中为item_edit和item_delete调用reverse()函数,还尝试在浏览器中手动输入URL,但仍然显示相同的错误

我的模型:


类别项(models.Model):
黄金纯度选择=(
...
)
颜色选择=(
...
)
钻石纯度选择=(
...
)
评级_选项=(
...
)
code=models.CharField(最大长度=25,db\u索引=True,唯一性=True)
黄金纯度=models.CharField(
最大长度=3,选项=黄金纯度(选项,默认值为14K)
人工=models.PositiveIntegerField()
认证号=models.CharField(最大长度=35,空=真,空=真)
钻石色=型号.CharField(
最大长度=4,选项=颜色选项,默认值='F')
钻石纯度=models.CharField(
最大长度=10,选项=DIAMOND\u纯度\u选项,默认值为'IF')
额定值=models.CharField(
最大长度=3,默认值=A',选项=评级(选项)
总量=型号。小数点域(最大位数=6,小数点位=3)
image=models.ImageField(blank=True,null=True,
上载到=用户目录路径)
定义(自我):
...
类别颜色(models.Model):
item=models.ForeignKey(
项目,在\u delete=models.CASCADE上,相关的\u name='colors',帮助\u text='颜色所属的项目。'))
shade=型号。分米尔菲尔德(…)
price=models.IntegerField(…)
钻石级(型号.型号):
item=models.ForeignKey(
项目,在\u delete=models.CASCADE上,相关的\u name='diamonds',帮助\u text='diamond所属的项目。'))
重量=型号。分米尔菲尔德(…)
速率=模型。整型字段(…)
URL.py:

从django.url导入路径,包括
从。视图导入*
从django.conf导入设置
应用程序名称='库存管理'
URL模式=[
路径(“”,索引,name='homepage'),
路径('stock/',stock\u list,name='stock\u list'),
路径('stock/add',stock\u create\u view,name='add\u stock'),
#项目:
路径('item/edit/',item_edit,name='item_edit'),
路径('item/delete/',ItemDeleteView.as_view(),name='item_delete'),
]
如果设置为.DEBUG:
#测试模式
从django.conf.url.static导入静态
urlpatterns+=静态(settings.static\u URL,
文档根=设置。静态根)
urlpatterns+=静态(settings.MEDIA\u URL,
document\u root=settings.MEDIA\u root)
views.py:

def项_编辑(请求,主键=1):
项目=获取对象或404(项目,主键=主键)
ColorInlineFormSet=inlineformset\u工厂(
项目,颜色,字段=('shade','price'),额外=1)
DiamondInlineFormSet=inlineformset\u工厂(
项目,菱形,字段=('weight','rate'),额外=1)
如果request.method==“POST”:
color\u inline\u formset=ColorInlineFormSet(
request.POST,instance=item)
菱形内联形状集=菱形内联形状集(
request.POST,instance=item)
item\u form=ItemForm(request.POST,instance=item)
如果项\u form.is\u valid()和颜色\u inline\u formset.is\u valid()和菱形\u inline\u formset.is\u valid():
item=item_form.save()
color\u formset=color\u inline\u formset.save()
diamond\u formset=diamond\u inline\u formset.save()
返回重定向(“库存管理:主页”)
其他:
messages.error(请求、项目\u表单错误)
messages.error(请求、颜色\u内联\u表单集.errors)
messages.error(请求、菱形\u内联\u表单集.errors)
其他:
color\u inline\u formset=ColorInlineFormSet(
实例=项目)
菱形内联形状集=菱形内联形状集(
实例=项目)
item\u form=ItemForm(实例=item)
返回呈现(请求'forms/add_stock.html',{'title':'Edit Item Form','Item','Item','Item_Form':Item_Form','Item_color_forms':color_inline_formset','Item_diamond_forms':diamond_inline_formset,})
def项目_删除(请求,主键):
项目=获取对象或404(项目,主键=主键)
如果request.method==“POST”:
项目.删除()
返回重定向(“库存清单”)
返回呈现(请求'forms/utils/confirm_delete.html',{'title':item})
模板: list.html:

{% extends 'index.html' %} 
{% block title %} Stock {% endblock %} 
{% block pageheading %} Stock List {% endblock %} 
{% block content %} 
{% for stock in stocks %}
<div class="card-body">

  <div class="item pb-1">
    <h5>{{ stock.item.code }}</h5>
    {% if stock.item.image %}
      <image src = " {{ stock.item.image.url }} " ></image>
    {% endif %}
  <a href=" {% url 'item_delete' stock.item.id %} " class="btn btn-danger btn-circle">
    <i class="fas fa-trash"></i>
  </a>
  <a href="{% url 'item_edit' pk=stock.item.id %}" class="btn btn-info btn-circle">
    <i class="far fa-edit"></i>
  </a>
</div>
{% endfor %}
{% endblock %}

{%extends'index.html%}
{%block title%}股票{%endblock%}
{%block pageheading%}库存列表{%endblock%}
{%block content%}
{库存百分比为%}
{{stock.item.code}
{%if stock.item.image%}
{%endif%}
{%endfor%}
{%endblock%}

我希望解决此错误,以便我可以完成CRUD视图,也可以再次访问my list.html。

使用URL时,您需要在html文件中添加使用过的URL的appname。 也更新

   <a href=" {% url 'stock_management:item_delete' pk=stock.item.id %}

{%endfor%}
{%endblock%}

显示堆栈中的实际错误+执行行我已经尝试过这一次,但没有成功。这个方法中的url名称也是
“stock\u management:item\u edit”
。几天前我遇到了同样的问题。您是否在html文件中更改了所有URL并在其前面添加了appname?@AseelAshraf我想您需要向him@YQadoome我认为你需要在评论别人的答案之前先思考。@AseelAshraf我认为你需要像假设那样思考。我们都在这里学习。
 <a href=" {% url 'stock_management:item_delete' stock.item.id %}
{% extends 'index.html' %} 
{% block title %} Stock {% endblock %} 
{% block pageheading %} Stock List {% endblock %} 
{% block content %} 
{% for stock in stocks %}
<div class="card-body">

  <div class="item pb-1">
    <h5>{{ stock.item.code }}</h5>
    {% if stock.item.image %}
      <image src = " {{ stock.item.image.url }} " ></image>
    {% endif %}
  <a href=" {% url 'stock_management:item_delete' stock.item.id %} " class="btn btn-danger btn-circle">
    <i class="fas fa-trash"></i>
  </a>
  <a href="{% url 'stock_management:item_edit' stock.item.id %}" class="btn btn-info btn-circle">
    <i class="far fa-edit"></i>
  </a>
</div>
{% endfor %}
{% endblock %}