【发布时间】:2020-06-09 12:35:42
【问题描述】:
我不断收到此错误,但我不知道为什么。谁能帮帮我?
错误:
NoReverseMatch at /item
未找到带有参数“('llll111',)' 的“edit_item_status”的反向操作。尝试了 1 种模式:['item/edit_item/(?P\d+)$']
models.py
class item_status(models.Model):
item_code=models.CharField(max_length=30,unique=True,primary_key=True,blank=False)
item_name=models.CharField(max_length=50,blank=True)
type= models.CharField(max_length=100,blank=True)
price=models.IntegerField()
choices =({'AVAILABLE','Item ready to be purchased'},{'SOLD','Item Sold'},{'RESTOCKING','Item restocking in few days'})
status=models.CharField(max_length=50,choices=choices,default="AVAILABLE") #Available,Sold, Restocking
item_quantity_available=models.IntegerField()
issues=models.CharField(max_length=100,default="No issues")
views.py
def edit_item(request, pk, model, cls):
item = get_object_or_404(model, pk=pk)
if request.method == "POST":
form = cls(request.POST, instance=item)
if form.is_valid():
form.save()
return redirect('index')
else:
form = cls(instance=item)
return render(request, 'inv/edit_item.html', {'form': form})
def edit_item_status(request, pk):
return edit_item(request, pk, item_status, item_statusForm)
forms.py
class item_statusForm(forms.ModelForm):
class Meta:
model = item_status
fields = ('item_code', 'item_name', 'type', 'price','status','item_quantity_available','issues',)
urls.py
url(r'^item/edit_item/(?P<pk>\d+)$', edit_item_status, name="edit_item_status"),
index.html
{% for item in items1%}
<tr>
<td>{{ item.item_code }}</td>
<td>{{ item.item_name }}</td>
<td>{{ item.type }}</td>
<td>{{ item.price}}</td>
<td>{{ item.status}}</td>
<td>{{ item.item_quantity_available}}</td>
<td>{{ item.issues}}</td>
td>
<a href="{% url 'edit_item_status' item.item_code %}" class="btn btn-warning btn-sm" role="button" aria-pressed="true" > Edit</a>
<a href="{% url 'delete_item_status' item.item_code %}" class="btn btn-danger btn-sm" role="button" aria-pressed="true" > x</a>
</td>
</tr>
{% endfor %}
但是,此代码适用于我的其他使用整数主键的类。 我不知道为什么和 我现在完全迷路了。
【问题讨论】:
-
Django 无法将查询路径“edit_supplier”与 urls.py 中的条目匹配。另请注意,正则表达式
(?P<pk>\d+)需要一个数字。 -
NoReverseMatch at /item Reverse for 'edit_item_status' with arguments '('llll111',)' 未找到。尝试了 1 种模式:['item/edit_item/(?P
\\d+)$'] 这实际上也是我尝试在另一张桌子上使用的错误。您对如何从 url 传递 char 类型有任何想法吗?
标签: python django django-models django-views django-templates