i am trying to use slug to navigate. here's the html tag
<a href="{% url 'blog_details' blog.slug|slugify %}">Read More</a>
urls.py
path('details/<slug:slug>/', views.blog_details, name='blog_details'),
models.py
slug= models.SlugField(max_length=264,unique=True,null=True,allow_unicode=True)
this is how i am creating auto slug
def Creating_blog(request):
form=BlogForm()
if User.is_authenticated:
if request.method=='POST':
form=BlogForm(request.POST,request.FILES)
if form.is_valid:
blog_obj=form.save(commit=False)
blog_obj.author=request.user
title=blog_obj.blog_title
blog_obj.slug = title.replace(' ','-') + '-'+ str(uuid.uuid4())
blog_obj.save()
return redirect('index')
return render(request,'blogs/creatingblog.html',context={'form':form})
this is the view of the blog details page
def blog_details(request, slug):
if User.is_authenticated:
blog = Blog.objects.get(slug=slug)
already_liked = Likes.objects.filter(blog=blog, user= request.user)
if already_liked:
liked = True
else:
liked = False
comments=Comment.objects.filter(blog=blog)
commet_form=CommentForm()
if request.method=='POST':
commet_form=CommentForm(request.POST)
if commet_form.is_valid():
comment=commet_form.save(commit=False)
comment.user=request.user
comment.blog=blog
comment.save()
return HttpResponseRedirect(reverse('blog_details',kwargs={'slug':slug}))
return render(request,'blogs/blogdetails.html',context={'blog':blog,'comment_form':commet_form,'comments':comments,'like':liked})
else:
HttpResponseRedirect(reverse('login'))
the problem is must be in
C:\Users\ITS\Desktop\blogger\Blog\posts\views.py, line 51, in blog_details
blog = Blog.objects.get(slug=slug)
if i use pk=id instead of slug, it works. But whenever i am trying to catch with the slug the error rises. i am stuck for days here i can't find what's wrong.