Я создаю клон Reddit.
models.py
class Subreddit(models.Model):
owner = models.ForeignKey(Profile, on_delete=models.DO_NOTHING, null=True, blank=True, related_name='subreddits')
class Post(models.Model):
owner = models.ForeignKey(Profile, on_delete=models.DO_NOTHING)
title = models.CharField(max_length=300)
subreddit = models.ForeignKey(Subreddit, on_delete=models.CASCADE)
urls.py
urlpatterns = [
# API Views
# SUBREDDIT VIEWS
path('r/', ListSubreddits.as_view(), name='reddits'),
path('r/<int:r_id>/', DetailSubreddit.as_view(), name='reddits-detail'),
path('r/<int:r_id>/posts/', ListPostsOfReddit.as_view(), name='reddit-posts'),
]
ListPostsOfReddit
class ListPostsOfReddit(ListAPIView):
queryset = Post.objects.all()
serializer_class = PostSerializer
lookup_field = 'subreddit__id'
lookup_url_kwarg = 'r_id'
У меня проблема с URL-адресом, названным «reddit-posts». Этот URL пытается получить весь конкретный поддредит, чей id
указан в URL как r_id
. Проблема в том, что Я получаю все сообщения, а не сообщения, относящиеся к этому подредакту . Так что, если у меня есть 2 поста в subreddit с id = 1 и 3 поста с subreddit с id = 2, если я пойду на r/1/posts/
, теоретически я должен получить только 2 поста, но практически я получаю все 5 постов.
Я указал lookup_field
и lookup_url_kwarg
, но это не похоже на работу. Нужна помощь! Спасибо!