大家下午好,
我只是想知道是否有人可以提供有关如何解决以下错误的任何指导或提示:
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()
任何帮助将不胜感激!
谢谢。