【发布时间】:2016-12-11 20:24:34
【问题描述】:
我正在尝试获取一个 ListView,在我的模板中为其定义了 get_absolute_url。但它引发了一个错误:
未找到带有参数“()”和关键字参数“{'bid_id': 16}”的“accept_bid”的反向操作。尝试了 1 种模式:['post/(?P[\w-]+)/bid/(?P[\w-]+)/$']。
我需要在我的视图中定义这两个整数 id 还是有其他问题?
如果能帮助我解决这个问题,我将不胜感激。
models.py:
class Bid(models.Model):
post = models.ForeignKey(Post, related_name = "bids")
user = models.OneToOneField(User, null=True, blank=True)
amount = models.IntegerField()
def get_absolute_url(self):
return reverse("accept_bid", kwargs={"bid_id": self.id})
Views.py:
class LiveBids(LoginRequiredMixin, ListView, FormView ):
template_name = 'live_bids.html'
def get_queryset(self):
return Post.objects.all().prefetch_related('bids').filter(user=self.request.user).order_by('id')
urls.py:
url(r'^live_bids/$', LiveBids.as_view(model=Post), name='LiveBids'),
url(r'^post/(?P<post_id>[\w-]+)/bid/(?P<bid_id>[\w-]+)/$', views.accept_bid, name='accept_bid'),
live_bids.html:
{% for bid in post.bids.all %}
{{bid.amount}}
<p><a href='{{ bid.get_absolute_url }}'>Accept</p>
{% endfor %}
【问题讨论】:
标签: django django-models django-views django-urls django-generic-views