反向''参数'()'和关键字参数''未找到。尝试了2种模式:[]

时间:2016-07-14 10:22:26

标签: django django-models django-views django-urls

我在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 %}

1 个答案:

答案 0 :(得分:0)

您允许用户字段为None,但您在get_absolute_url方法中依赖它。由于它是空白的,查找失败。

Bid的网址似乎有点奇怪,它取决于用户ID,而不是出价ID。您可能希望在那里使用self.id