我在Django模型中创建了一个Bid Class。当我试图获得bid_list时,它正在返回 " NoReverseMatch at / bid_list / 反向' accept_bid'参数'()'和关键字参数' {'用户':}'未找到。尝试了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 %}
答案 0 :(得分:0)
您允许用户字段为None,但您在get_absolute_url方法中依赖它。由于它是空白的,查找失败。
Bid的网址似乎有点奇怪,它取决于用户ID,而不是出价ID。您可能希望在那里使用self.id
。