Итак, у меня есть модель User, модель Community, модель Post и модель UserJoinedCommunity. Что я хочу сделать, так это получить все сообщения от сообществ, к которым присоединился пользователь, чтобы я мог отображать их на домашней странице.
Модель UserJoinedCommunity, которая контролирует, какой пользователь присоединился к какому сообществу:
class UserJoinedCommunity(models.Model):
"""DB Model for users joined communities"""
user = models.ForeignKey(User, on_delete=models.CASCADE)
community = models.ForeignKey(Community, on_delete=models.CASCADE)
class Meta:
constraints = [
UniqueConstraint(fields=['user', 'community'], name="user-joined-community")
]
def __str__(self):
return f"{self.user.username}|{self.community.name}"
Модели Community
и Post
- это просто простые модели с полями, такими как имя, заголовок и т. Д.
Итак, теперь я хотел бы создать APIView или ViewSet, который бы возвращал все сообщения от сообществ, к которым присоединился пользователь.
Примерно так:
class UserRelevantPosts(APIView):
authentication_classes = (TokenAuthentication,)
def get(self, request):
user_relevant_posts = "?"
return Response({'posts': user_relevant_posts}, status=200)
Скажите, если вам нужно больше примеров кода.