【发布时间】:2018-07-04 20:04:53
【问题描述】:
我的python代码不断返回以下错误:
找不到页面 (404) 请求方法:GET 请求 URL: http://127.0.0.1:8000/geo_gas/edit_sale/ 提出者: geo_gas.views.edit_sale 没有与给定查询匹配的销售额。
class Sales(models.Model):
gas_qty = models.CharField(max_length=20)
amount = models.CharField(max_length=20)
date_added = models.DateTimeField(auto_now_add=True)
def __str__(self):
"""Return a string representation of the model."""
return self.gas_qty
class Meta:
verbose_name_plural = 'Sales'
查看.py
def edit_sale(request):
"""Edit an existing sales record."""
entry = get_object_or_404(Sales, pk=1)
if request.method != 'POST':
form = SalesForm(instance=entry)
else:
form = SalesForm(instance=entry, data=request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect(reverse('geo_gas:sales'))
context = {'entry': entry, 'form': form}
return render(request, 'ht/edit_sale.html', context)
网址.py
.......
# Page for editing a sale entry
path('edit_sale/', views.edit_sale, name='edit_sale'),
.......
ht/templates/ht/edit_sale.html
编辑条目:
<form action="{% url 'geo_gas:edit_entry' %}" method='post'>
{% csrf_token %}
{{ form.as_p }}
<button name="submit">save changes</button>
</form>
我无法确定导致错误发生的代码部分。
【问题讨论】:
-
你添加命名空间
geo_gas了吗? -
可以分享
urls.py的详细版吗? -
发布完整的
urls.py。这个 url'geo_gas:sales'是在哪里定义的? -
尝试不同的 id,它存在于你的数据库
entry = get_object_or_404(Sales, pk=1)而不是一个。我猜你已经删除了一些实例 -
您正在对
pk=1进行硬编码,如果不存在,您将收到错误消息。我昨天向您展示了如何将主键添加到 url 并查看您的问题 - stackoverflow.com/a/48426092/113962