0

Ich versuche, eine ListView für die get_absolute_url in meiner Vorlage definiert ist. Aber es löst einen Fehler:Reverse für 'mit Argumenten'() 'und Schlüsselwortargumente nicht gefunden. 1 Muster versucht:

Reverse for 'accept_bid' with arguments '()' and keyword arguments '{'bid_id': 16}' not found. 1 pattern(s) tried: ['post/(?P<post_id>[\\w-]+)/bid/(?P<bid_id>[\\w-]+)/$'].

Muss ich die die zwei Integer-IDs in meiner Ansicht definieren, oder gibt es someother Problem?

Ich würde mich freuen, mich in diesem Problem zu helfen.

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

Antwort

4

Sie müssen auch den Wert post_id enthalten:

kwargs={"bid_id": self.id, "post_id": self.post.id} 
+0

Ich erhalte die post_id aus dem Postfeld (ForeignKey), wie definiert in meinem Bid Modell. Wie kann whatever_post_id_is in Ihrer Antwort für das Erhalten der post_id ?? – sumanth

+0

@sumanth, ich habe gerade bearbeitet. – xbello