首页 文章

未找到“' with arguments '()' and keyword arguments '”的反向 . 尝试了2种模式:[]

提问于
浏览
0

我在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 回答

  • 0

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

    Bid的网址依赖于用户ID而不是出价ID似乎有点奇怪 . 你可能想在那里使用 self.id .

相关问题