Обработка viewset с сериализатором с несколькими иностранными ключами - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть этот сериализатор:

class ReviewSerializer(serializers.ModelSerializer):
    user = UserSerializer(read_only=True)

    class Meta:
        model = Review
        fields = ('pk', 'title', 'user', 'movie', 'timestamp', 'review_text',)

Хочу отметить, что user и movie оба ForeignKey определены в models.py для Review модели.Вот модель:

class Review(models.Model):
    title = models.CharField(max_length=255)
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='reviews')
    movie = models.ForeignKey(Movie, on_delete=models.CASCADE, related_name='reviews')
    review_text = models.TextField()
    timestamp = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return '{movie} review by {user}'.format(user=self.user, movie=self.movie)

Я хочу создать набор изображений, но если я сделаю что-то вроде этого:

class ReviewsViewSet(viewsets.ModelViewSet):
    queryset = Movie.objects.all()
    serializer_class = ReviewSerializer

и зарегистрируйте его так:

router.register(r'reviews', views.ReviewsViewSet, 'reviews')

не будет работать, мне нужно предоставить movie field, как указано здесь:

AttributeError at /api/reviews/
Got AttributeError when attempting to get a value for field `movie` on serializer `ReviewSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `Movie` instance.
Original exception text was: 'Movie' object has no attribute 'movie'.

Заранее спасибо.

Отредактировано.

...