#django #django-models #django-forms #django-templates #django-views
#django #django-модели #django-forms #django-templates #django-просмотры
Вопрос:
Я пытаюсь создать приложение для блога. Запустил makemigrations и migrate, а также создал суперпользователя. Но при запуске сервера я получаю сообщение об ошибке ниже.
django.template.library.InvalidTemplateLibrary: указана недопустимая библиотека шаблонов. Ошибка импорта, возникающая при попытке загрузить ‘blog.templatetags.blog_tags’: не удается импортировать имя ‘POST’ из ‘blog.models’
Пожалуйста, помогите мне…. Мой models.py файл является
from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone
from django.urls import reverse
# Create your models here.
class CustomManager(models.Manager):
def get_queryset(self):
return super().get_queryset().filter(status='published')
from taggit.managers import TaggableManager
class Post(models.Model):
STATUS_CHOICES=(('draft','Draft'),('published','Published'))
title=models.CharField(max_length=256)
slug=models.SlugField(max_length=264,unique_for_date='publish')
author=models.ForeignKey(User,related_name='blog_posts',on_delete=models.DO_NOTHING)
body=models.TextField()
publish=models.DateTimeField(default=timezone.now)
created=models.DateTimeField(auto_now_add=True)
updated=models.DateTimeField(auto_now=True)
status=models.CharField(max_length=10,choices=STATUS_CHOICES,default='draft')
objects=CustomManager()
tags=TaggableManager()
class Meta:
ordering=('-publish',)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('post_detail',args=[self.publish.year,self.publish.strftime('%m'),self.publish.strftime('%d'),self.slug])
class Comment(models.Model):
post=models.ForeignKey(Post,related_name='comments',on_delete=models.DO_NOTHING)
name=models.CharField(max_length=40)
email=models.EmailField()
body=models.TextField()
created=models.DateTimeField(auto_now_add=True)
updated=models.DateTimeField(auto_now=True)
active=models.BooleanField(default=True)
class Meta:
ordering=('-created',)
def __str__(self):
return 'Commented by {} on {}'.form(self.name,self.post)
Комментарии:
1. пожалуйста, предоставьте полную обратную трассировку
Ответ №1:
Похоже, у вас есть
from blog.models import POST
в blog/templatetags/blog_tags.py
.
В именах переменных Python важна заглавная буква. Это должно быть:
from blog.models import Post
Комментарии:
1. Да, я написал Post, поскольку имя класса моей модели — Post. Но она автоматически преобразуется в POST.
2. Извините, я не проверил это должным образом. Большое вам спасибо. Действительно ценю быструю помощь