python - tags = Tag.objects.all() выдаёт ошибку: NameError: name Tag is not defined


0

Выдаёт ошибку

NameError: name Tag is not defined

у файла views.py на 13 строке.

views.py:

    from django.shortcuts import render
    from .models import Post

    def posts_list(request):
        posts = Post.objects.all()
        return render(request, blog/index.html, context={posts: posts})

    def post_detail(request, slug):
        post = Post.objects.get(slug__iexact=slug)
        return render(request, blog/post_detail.html, context={post: post})

    def tags_list(request):
        tags = Tag.objects.all()
        return render(request, blog/tags_list.html, context={tags: tags})

models.py:

    from django.db import models
    from django.shortcuts import reverse

    class Post(models.Model):
        title = models.CharField(max_length=150, db_index=True)
        slug = models.SlugField(max_length=150, unique=True)
        body = models.TextField(blank=True, db_index=True)
        tags = models.ManyToManyField(Tag, blank=True, related_name=posts)
        date_pub = models.DateTimeField(auto_now_add=True)

        def get_absolute_url(self):
            return reverse(post_detail_url, kwargs={slug: self.slug})

        def __str__(self):
            return {}.format(self.title)


    class Tag(models.Model):
        title = models.CharField(max_length=50)
        slug = models.SlugField(max_length=50, unique=True)

        def __str__(self):
            return {}.format(self.title)

urls.py:

    from django.urls import path
    from .views import *

    urlpatterns = [
        path(, posts_list, name=posts_list_url),
        path(post/<str:slug>/, post_detail, name=post_detail_url),
        path(tags/, tags_list, name=tags_list_url)
    ]
Источник
  •  1352
  •  1
  • 22 янв 2019 2019-01-22 21:02:39
@avtomato, напишите ваш комментарий как ответ, чтобы получить за него баллы. — 22 янв 20192019-01-22 23:53:01.000000
Заработало, благодарю. — 22 янв 20192019-01-22 21:10:11.000000
На второй строке views.py добавьте Tag после Post через запятую. — 22 янв 20192019-01-22 21:08:26.000000

1 ответ

-1

Добавьте в views.py:

from .models import Post, Tag
  • 23 янв 2019 2019-01-23 07:55:34
В опубликованном сообщении не содержится решения вопроса. Когда ваша репутация достигнет необходимого уровня, вы сможете оставлять комментарии к любому сообщению; на данный момент, пожалуйста, внесите улучшающую правку в ваше сообщение, чтобы оно отвечало на вопрос без дополнительных уточнений от автора. — из очереди проверок 23 янв 20192019-01-23 06:44:57.000000