Reputation: 1270
I am building a BlogApp and I am stuck on a Error.
What i am trying to do :-
I just add slug
into my model and also updated get_absolute_url
and url
.
BUT after that whenever i try to open page in browser then it shows
Reverse for 'detail_view' with keyword arguments '{'pk': 11}' not found. 1 pattern(s) tried: ['detail_view/(?P[-a-zA-Z0-9_]+)/(?P[0-9]+)$']
models.py
class Post(models.Model):
post_owner = models.ForeignKey(User,default='',null=True,on_delete = models.CASCADE)
post_title = models.CharField(max_length=500,default='')
slug = models.SlugField(null=True)
def get_absolute_url(self):
return reverse('detail_view',kwargs={'pk':self.pk,'slug':self.slug})
views.py
def detail_view(request,pk,slug):
data = get_object_or_404(Post,pk=pk)
urls.py
path('detail_view/<slug:slug>/<int:pk>',views.detail_view,name='detail_view'),
template.html
<a href="{% url 'detail_view' pk=topic.pk %}">More</a><br>
I have no idea what is causing this error.
Any help would be Appreciated Thank You in Advance
Upvotes: 0
Views: 99
Reputation: 5854
You have also to provide slug
in template url
tag slug=topic.slug
:
<a href="{% url 'detail_view' slug=topic.slug pk=topic.pk %}">More</a><br>
or use get_absolute_url
method of your model:
<a href="{{ topic.get_absolute_url }}">More</a><br>
Upvotes: 3