не могу увидеть мой блог на моем сайте Django - PullRequest
0 голосов
/ 05 октября 2019

я пытаюсь следовать этому уроку по django, на моем веб-сайте есть три раздела под названием домашний блог и контент.

что должно произойти, я нажимаю на блог, и в нем перечисляется запись в блоге, которую я сделал вАдминистратор и я могу нажать на сообщение и прочитать, что говорится в сообщении в блоге, но когда я нажимаю на блоги, ничего не появляется, оно просто пустое.

Я уже установил приложения в настройках

iдобавили URL в папку url.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('personal.urls')),
    url(r'^blog/', include('blog.urls')),

Я зашел в папку моделей и создал модель

из django.db, импортирующую модели

class Post(models.Model):
    title = models.CharField(max_length=140)
    body = models.TextField()
    date = models.DateTimeField()

    def __str__(self):
        return self.title

вВ папке «Мои блоги / URL-адреса» у меня есть

from django.conf.urls import url, include
from django.views.generic import ListView, DetailView
from blog.models import Post
from django.urls import path

urlpatterns = [ path('', ListView.as_view(queryset=Post.objects.all().order_by("-date")[:25],
                    template_name="blog/blog.html")),
                path('<int:pk>/', DetailView.as_view(model=Post,
                    template_name='blog/post.html'))]

, в папке моего блога я создал новый каталог с именем templates, а в шаблонах - другой каталог с именем blog, а в папке - HTML-файл blog.html иэто в блокноте ++. это то, что находится в этом блокноте blog.html

{% extends "personal/header.html" %}

{% block content %}
    {% for post in obejects_list %}
      <h5>{{ post.date|date:"Y-m-d" }}<a href=
      "/blog/{{post.id}}"> {{post.title}}</a></h5>
    {% endfor %}
{% endblock %}

, и я зашел в папку администратора и добавил

from django.contrib import admin
from blog.models import Post

admin.site.register(Post)

1 Ответ

0 голосов
/ 06 октября 2019

попробуйте добавить context_object_name к вашему классу ListView следующим образом:

 path('', ListView.as_view(queryset=Post.objects.all().order_by("-date")[:25],
                    template_name="blog/blog.html", context_object_name = "posts")),

, затем в вашем шаблоне сделайте так:

{% extends "personal/header.html" %}

{% block content %}
    {% for post in posts %}
      <h5>{{ post.date|date:"Y-m-d" }}<a href=
      "/blog/{{post.id}}"> {{post.title}}</a></h5>
    {% endfor %}
{% endblock %}
...