简体   繁体   English

我正在研究 Django 博客,错误是

[英]I'm working on a Django blog, The error is

Page not found (404) Request Method: GET Request URL: http://127.0.0.1:8000/detail/python Raised by: main.views.blog_detail No Blog matches the given query.找不到页面 (404) 请求方法:GET 请求 URL: http://127.0.0.1:8000/detail/python提出者:main.views.blog_detail 没有博客与给定的查询匹配。

It says that the error is raised by "main.views.blog_detail", What am I missing or what could be the erroe?它说错误是由“main.views.blog_detail”引发的,我错过了什么或者可能是什么错误?

This is my urls.py:这是我的 urls.py:

from django.urls import path
from . import views

app_name = 'main'

urlpatterns = [
    path('' , views.test , name='test_view'),
    path('blog/', views.blog_list, name='blog_list'),
    path('<slug:category_slug>' , views.blog_list , name='blog_list'),
    path('detail/<slug:blog_slug>' , views.blog_detail , name='blog_detail'),

]

This is my views.py file:这是我的views.py 文件:

    from django.shortcuts import render
from django.http import HttpResponse
from .models import Blog,BlogCategory
from django.shortcuts import get_object_or_404

# Create your views here.
def test(request):

    template = 'base.html'

    # context = {'product_list':productlist, 'category_list':categorylist, 'category':category}
    return render(request, template)

def blog_list(request, category_slug=None):
    category = None
    bloglist = BlogCategory.objects.all()

    if category_slug:
        category = get_object_or_404(BlogCategory,slug=category_slug)
        bloglist = bloglist.filter(category=category)

    template = 'main/blog.html'

    context = {'blog_list':bloglist}
    return render(request, template, context)

def blog_detail(request, blog_slug):
    print(blog_slug)
    blogdetail = get_object_or_404(Blog, slug=blog_slug)
    template = 'Main/blog_details.html'
    context = {'blog_detail':blogdetail}
    return render(request, template, context)

This is my models.py file:这是我的 models.py 文件:

from django.db import models
from datetime import datetime
from django.utils.text import slugify

# Create your models here.
class Blog(models.Model):
    blog_title = models.CharField(max_length=200)
    blog_content = models.TextField()
    blog_published = models.DateTimeField('date published', default=datetime.now)
    blog_category = models.ForeignKey('BlogCategory', on_delete=models.SET_NULL, null=True)
    slug = models.SlugField(blank=True,null=True)

    def save(self, *args, **kwargs):
        if not self.slug and self.blog_title:
            self.slug = slugify(self.blog_title)
        super(Blog,self).save(*args, **kwargs)

    def __str__(self):
        return self.blog_title



class BlogCategory(models.Model):

    blog_category = models.CharField(max_length=200)
    blog_summary = models.CharField(max_length=200)
    slug = models.SlugField(blank=True,null=True)

    def save(self, *args, **kwargs):
        if not self.slug and self.blog_category:
            self.slug = slugify(self.blog_category)
        super(BlogCategory,self).save(*args, **kwargs)

    class Meta:
        # Gives the proper plural name for admin
        verbose_name_plural = "Categories"

    def __str__(self):
        return self.blog_category

This is my bloglist.html:这是我的博客列表。html:

{% extends 'base.html' %}

{% block content %}
  <div class="row">
    {% for bl in blog_list %}
        <div class="col s12 m6">
          <a href="{% url 'main:blog_detail' bl.slug %}">
          <div class="card hoverable">
            <div class="card-content">
              <span class="card-title">{{bl.blog_category}}</span>
              <p style="font-size:70%">Published {{bl.blog_published}}</p>
              <p>{{bl.blog_summary}}</p>
            </div>
          </div>
        </div>
    {% endfor %}
{% endblock %}

This is my blogdetails.html:这是我的博客details.html:

{% extends 'base.html' %}

{% block content %}

    <div class="row">
        <div class="col s12, m8, l8">
            <h3>{{blog_detail.blog_title}}</h3>
            <p style="font-size:70%">Published {{blog_detail.blog_published}}</p>
            {{blog_detail.blog_content|safe}}
        </div>
    </div>

{% endblock %}

You have to just change a name of 'Main' to 'main' because your blog_details.html page was in main directory.您只需将“Main”的名称更改为“main”,因为您的 blog_details.html 页面位于主目录中。 And also check name of blog_details.html directory properly than integrate it properly with perfect name.并正确检查 blog_details.html 目录的名称,而不是将其与完美名称正确集成。

 template = 'main/blog_details.html'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我正在处理 django 中的 RSS 提要,但它给了我一个错误 - I'm Working on the RSS Feed in the django but it gives me an Error 我该如何解决这个错误? 我正在和 django 一起做一个学校项目,但我被困住了 - How can i solve this error? I'm working with django on a school project and i'm stuck Biblion,Django 博客错误 - Biblion, Django blog error 我的代码有问题 @ Python django 博客出现此错误:AttributeError: module 'django.contrib.auth.admin' has no attribute 'site' - I'm having an issue with my code @ Python django blog Getting this error : AttributeError: module 'django.contrib.auth.admin' has no attribute 'site' 博客表的Django syncdb错误 - Django syncdb error for blog tables Django; TemplateDoesNotExist 错误 - 博客应用程序 - Django; TemplateDoesNotExist error - blog app Django Zinnia博客条目错误 - Django Zinnia blog error for entries Django 模型错误,现在我想从一个 charfiled 中减去另一个,但始终等于 0,就像默认值一样。 我是使用 django 的初学者 - Django models error, Now I want subtract from one charfiled other, but always equal to 0, like a default,. I'm beginner with working with django 我怎么会收到这个Django错误? - How come I'm getting this Django error? 我收到 django 表单的验证错误 - I'm getting a validation error with django form
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM