Django Rest Framework: включение полей с несколькими вариантами выбора в сериализаторPython

Программы на Python
Ответить
Anonymous
 Django Rest Framework: включение полей с несколькими вариантами выбора в сериализатор

Сообщение Anonymous »

Я использую Django Rest Framework для создания собственного API для моей модели Movies, которая определяется следующим образом:

models.py

Код: Выделить всё

from django.db import models

class Movies(models.Model):
popularity = models.FloatField()
director = models.CharField(max_length = 128)
GENRE_CHOICES = (('Adventure', 'Adventure'), ('Family', 'Family'), ('Fantasy', 'Fantasy'),
('Musical', 'Musical'), ('Sci-Fi', 'Sci-Fi'), ('Drama', 'Drama'), ('War', 'War'),
('Romance', 'Romance'), ('Comedy', 'Comedy'), ('Thriller', 'Thriller'),
('Crime', 'Crime'), ('Horror', 'Horror'), ('History', 'History'), ('Family', 'Family'),
('Animation', 'Animation'), ('Short', 'Short'), ('Western', 'Western'),
('Action', 'Action'), ('Biography', 'Biography'))
genre = models.CharField(max_length = 128, choices = GENRE_CHOICES)
imdb_score = models.FloatField()
movie_name = models.CharField(max_length = 500)
Теперь я хочу разрешить администратору приложения вводить новые экземпляры модели Movies в API. Я хочу, чтобы поле жанра имело множественный выбор, т. е. администратор должен иметь возможность выбрать более одного жанра для определенного фильма.

serializers.py

Код: Выделить всё

from shoppy.models import Movies
from rest_framework import serializers

class MoviesSerializer(serializers.ModelSerializer):
#genre = serializers.CharField(max_length = 128, choices = Movies.GENRE_CHOICES)

class Meta:
model = Movies
fields = ('popularity', 'director', 'genre', 'imdb_score',
'movie_name')
Однако на конечной точке API администратор может выбрать только один жанр из заданного списка вариантов. Я знаю, что если бы я работал с формами, я бы реализовал флажок с множественным выбором следующим образом:

Код: Выделить всё

genre = forms.CharField(max_length = 1230, widget=forms.CheckboxSelectMultiple(
choices=Movies.GENRE_CHOICES))
Как реализовать поля с множественным выбором в сериализаторах, чтобы администратор мог выбирать более одного жанра в конечной точке API?

Подробнее здесь: https://stackoverflow.com/questions/313 ... serializer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»