5
내가 만들고있는 사이트는 사용자가 "게시물"을 만들 수 있고 따라 다니는 사용자의 Twitter와 유사한 개념을 가지고 있습니다. 특정 사용자의 경우 내가 팔로우 한 모든 게시물을 표시하고 싶습니다. 여기Django ManyToManyField 관계로 정의 된 모든 객체 가져 오기
내 단순화 된 모델입니다 :
class User
# a standard django.contrib.auth user model
class UserProfile(models.Model):
# my AUTH_PROFILE_MODULE for django-profiles
user = models.ForeignKey(User, unique=True)
following = models.ManyToManyField('self', symmetrical=False, related_name="followed_by")
class Posts(models.Model):
user = models.ForeignKey(User)
post = models.TextField()
질문 : 어떻게 주어진 사용자가 다음하고있는 사용자의 모든 포스트 객체의 검색어 세트를 만들려면 어떻게해야합니까?
Posts와 ForeignKey 관계가있는 모델이 아닌 UserProfile에서 "follow"관계를 작성하여 좀 더 복잡하게 만들었다 고 생각합니다.
업데이트! 여기에 답이있다 :
Posts.objects.filter(user__userprofile__in=UserProfile.objects.get(user=your_user_object).following.all())
가 나는 형식 오류를 받고 있어요 : 'ManyRelatedManager'개체를 반복 가능하지 – mitchf
아, 잊어 버렸습니다. "follow"다음에 "UserProfile.objects.get (user = your_user_object) .following.all()"과 같은 .all()을 추가하십시오. 작동하지 않으면 follow.objects.all()로 변경하십시오. 나는 정확하게 기억하지 않는다. – werehuman
고마워요, TypeError가 수정되었지만, 빈 세트를 반환하기 때문에 뭔가가 여전히 올바르지 않습니다. – mitchf