使用django-taggit时出现此名称错误:未定义名称“标签”

时间:2019-09-16 12:09:25

标签: python django django-models django-forms django-views

对于我的网站,我希望用户能够在其帖子中添加标签。但是我得到这个错误: 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

错误

到目前为止,我已经更改了单词的大小写,更改了名称,但都无济于事。

感谢您提供的帮助:)

0 个答案:

没有答案