Django - 无法查询用户名,必须是 Tagulous_Post_season 的实例

时间:2021-05-31 15:56:05

标签: python django

大家下午好,

我只是想知道是否有人可以提供有关如何解决以下错误的任何指导或提示:

Cannot query [username], Must be instance of Tagulous_Post_season

我试图在我的 PostListView 类中返回两个不同的过滤器,但是当我尝试获取已分配给我的用户以前的帖子的 Tagulous 标签列表时,我收到了上面引用的错误。

视图.py

class PostListView(LoginRequiredMixin, ListView):
    model = Post
    template_name = 'core/home.html'
    context_object_name = 'posts'
    ordering = ['-date_posted']
    paginate_by = PAGINATION_COUNT
  

    def get_context_data(self, **kwargs):
        data = super().get_context_data(**kwargs)

        all_users = []
        data_counter = Post.objects.values('author')\
            .annotate(author_count=Count('author'))\
            .order_by('-author_count')[:6]
        
      

        for aux in data_counter:
            all_users.append(User.objects.filter(pk=aux['author']).first())
        # if Preference.objects.get(user = self.request.user):
        #     data['preference'] = True
        # else:
        #     data['preference'] = False
      
     
    
        
        data['preference'] = Preference.objects.all()
        # print(Preference.objects.get(user= self.request.user))
        data['all_users'] = all_users
        print(all_users, file=sys.stderr)
        return data

    def get_queryset(self):
        user = self.request.user
   
        qs = Follow.objects.filter(user=user)
        follows = [user]
        instance = Post()
        #taguser = Post.objects.filter(season=self.request.user)

        taguser = Post.season.tag_model.objects.all()
        
        for obj in qs:
            follows.append(obj.follow_user)
         
      
        return Post.objects.filter(author__in=follows).filter(season__author=user).order_by('-date_posted')

模型.py


class Post(models.Model):
    content = models.TextField(max_length=1000)
    date_posted = models.DateTimeField(default=timezone.now)
    image = models.ImageField(default='default.png', upload_to='srv_media')
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    likes= models.IntegerField(default=0)
    dislikes= models.IntegerField(default=0)
    title = tagulous.models.SingleTagField(initial="Mr, Mrs, Miss, Ms")
    season = tagulous.models.TagField(
        autocomplete_view='swaptags_season_autocomplete'
    )
  

    def __str__(self):
        return self.content[:5]

        img = Image.open(self.image.path)
        if img.height > 300 or img.width > 300:
            output_size = (300, 300)
            img.thumbnail(output_size)
            img.save(self.image.path)

    @property
    def number_of_comments(self):
        return Comment.objects.filter(post_connected=self).count()

任何帮助将不胜感激!

谢谢。

0 个答案:

没有答案
相关问题