Запрос, соответствующий блогу, не существует

Я использую 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 в шаблоне)

Дайте мне знать, если это сработало. Также, если вам нужна помощь с представлениями на основе классов, просто дайте нам знать.

Вернуться на верх