我在Django模型中创建了一个Bid Class . 当我试图获得bid_list时,它返回“NoReverseMatch at / bid_list / Reverse for'accept_bid'with arguments'()'和关键字参数'{'user':}'未找到.2模式尝试:[' accept_bid /(?P \ d)/ $','/ $']“
这是我的代码:
models.py:
class Bid(models.Model):
user = models.OneToOneField(User, null=True, blank=True)
amount = models.IntegerField()
def get_absolute_url(self):
return reverse("accept_bid", kwargs={"user": self.user})
def __unicode__(self):
return self.amount
views.py:
queryset = Bid.objects.all().order_by('amount')
urls.py:
url(r'^bid_list/$', views.bid_list, name='bid_list'),
url(r'^accept_bid/(?P<user>\d+)/$', views.accept_bid, name='accept_bid'),
bid_list.html:
{% for bid in queryset %}
<tbody>
<tr>
<td>{{bid.user}}</td>
<td>{{bid.amount}}</td>
<td>
<input type='submit' href='{{ bid.get_absolute_url }}' value='Accept' /></td>
</tr>
</tbody>
{% endfor %}
1 回答
您已允许用户字段为None,但您在get_absolute_url方法中依赖它 . 由于它是空白的,查找失败 .
Bid的网址依赖于用户ID而不是出价ID似乎有点奇怪 . 你可能想在那里使用
self.id
.