Запрос, соответствующий блогу, не существует
Я использую slug, чтобы показать страницу подробностей моего блога.
здесь models.py
class Blog(models.Model):
author=models.ForeignKey(User,on_delete=models.CASCADE,related_name='post_author')
blog_title=models.CharField(max_length=264,verbose_name='Put a Title')
slug= models.SlugField(max_length=264,unique=True)
blog_content=models.TextField(verbose_name='what is on your mind?')
blog_image=models.ImageField(upload_to='blog_images',verbose_name='Image')
publish_date=models.DateTimeField(auto_now_add=True)
update_date=models.DateTimeField(auto_now=True)
class Meta:
ordering = ('-publish_date',)
def __str__(self):
return self.blog_title+' From :'+str(self.author)
blog list views.py
def Creating_blog(request):
form=BlogForm()
if User.is_authenticated:
if request.method=='POST':
form=BlogForm(request.POST,request.FILES)
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('bloglist')
return render(request,'blogs/createblog.html',{'form':form})
urls.py
from django.urls import path
from .import views
urlpatterns = [
path('write/',views.Creating_blog,name='creatingblogs'),
path('bloglist/',views.BlogList.as_view(),name='bloglist'),
path('details/<slug:slug>/',views.blog_details,name="blog_details")
]
<div class="col-sm-8">
<p>{{blog.blog_content|capfirst|truncatewords:100}}<a href="{% url 'blog_details' slug=blog.slug|slugify %}">Read More</a></p>
</div>
Я могу видеть страницу списка блогов, но когда я пытаюсь увидеть подробности блога, он показывает мне эту ошибку
DoesNotExist at /details/big-time-space-rarity-9a3d63b4-634a-11ec-9db9-9c7bef6a0e62/
Blog matching query does not exist.
Я пробовал добавить новый блог, но он показывает мне то же самое. пожалуйста, помогите мне с этим и любезно спросите меня, если необходимо какое-либо описание. Заранее спасибо.
Ошибка возникает внутри представления blog_details
в строке:
blog= Blog.objects.get(slug=slug)
Вам следует отладить эту часть кода и определить, почему вы не можете найти экземпляр Blog
по slug.
Это довольно дикое предположение, так как я не воспроизвожу ваш код, но, на мой взгляд, что-то с вашим slug кажется неправильным.
Сначала измените следующую строку:
blog_obj.slug = slugify(title + '-' + str(uuid.uuid4()))
см: https://docs.djangoproject.com/en/4.0/ref/utils/#django.utils.text.slugify
измените следующее:
<p>{{blog.blog_content|capfirst|truncatewords:100}}<a href="{% url 'blog_details' slug=blog.slug %}">Read More</a></p>
(удалить slugify в шаблоне)
Дайте мне знать, если это сработало. Также, если вам нужна помощь с представлениями на основе классов, просто дайте нам знать.