对于我的网站,我希望用户能够在其帖子中添加标签。但是我得到这个错误:
python name 'Tag' is not defined
这是一些代码
models.py中的相关代码
from taggit.managers import TaggableManager
class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=75)
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
image = models.ImageField(upload_to='post_images',blank=True,null=True)
published_date = models.DateTimeField(blank=True,null=True,auto_now_add=True)
NSFW = models.BooleanField(default=False)
spoiler = models.BooleanField(default=False)
tags = TaggableManager()
def __str__(self):
return self.title
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
这是views.py中的相关代码
class TagMixin(object):
def get_context_data(self,**kwargs):
context = super(TagMixin,self).get_context_data(**kwargs)
context['tags'] = Tag.objects.all()
return context
class PostListView(TagMixin,ListView):
template_name = 'mainapp/post_list.html'
model = Post
context_object_name = 'posts'
queryset = Post.objects.all()
def get_queryset(self):
return Post.objects.filter(published_date__lte=timezone.now()).order_by('-published_date')
class TagIndexView(TagMixin,ListView):
template_name = 'mainapp/post_list.html'
context_object_name = 'posts'
model = Post
def get_queryset(self):
return Posts.objects.filter(tags__slug=self.kwargs.get('slug'))
这是表格。
class PostForm(forms.ModelForm):
class Meta():
model = Post
fields = ['title','text','image','tags','spoiler','NSFW']
widgets = {
'title':forms.TextInput(attrs={'class':'textinputclass'}),
'text':forms.Textarea(attrs={'class':'textareaclass editable'}),
}
def __init__(self, *args, **kwargs):
super(PostForm, self).__init__(*args, **kwargs)
self.fields['image'].required = False
在此行python context['tags'] = Tag.objects.all()
的Mixin中出现错误
谁能告诉我为什么我遇到了python name 'Tag' is not defined
到目前为止,我已经更改了单词的大小写,更改了名称,但都无济于事。
感谢您提供的帮助:)