【发布时间】:2020-04-09 10:22:59
【问题描述】:
我是 Django 初学者,我在个人资料模型中有一个朋友字段,其中列出了我所有的朋友用户。这些朋友也喜欢我的帖子。如何仅将朋友列表中的用户的姓名显示在他们喜欢的帖子中。
class Profile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL,... )
friends = models.ManyToManyField('Profile',related_name='my_friends')
class FriendRequest(models.Model):
to_user = models.ForeignKey(settings.AUTH_USER_MODEL,... )
from_user = models.ForeignKey(settings.AUTH_USER_MODEL,... )
class Post(models.Model):
poster_profile = models.ForeignKey(settings.AUTH_USER_MODEL,... )
likes = models.ManyToManyField(User, related_name='image_likes')
def home(request):
all_images = Post.objects.filter(poster_profile=request.user)
img = Post.objects.filter(likes__profile__friends__user=request.user)
{% if all_images %}
{% for post in all_images %}
#all_images code here
{{ post. likes.count }} #like count
{% for image in img %}<img src="{{ image.profile.profile_pic.url }}"> {% endfor %}#The profile_pic do not display
{% endfor %}
{% endif %}
【问题讨论】:
-
如果您有
post,那么post.likes.all()就是所有点赞帖子的用户。post.likes.filter(profile__friends=some_user)只会显示点赞帖子并且也是some_user好友的用户。 -
@dirkgroten ....我不明白你的逻辑,你能把你的答案附在我的问题上,这样我就可以理解你的逻辑了
-
向我们展示您如何显示一篇帖子。
-
@dirkgroten...我已经更新了我的问题,请检查