Mam kilka pól w moim modelu użytkownika, które są polami wyboru i staram się dowiedzieć, jak najlepiej to wdrożyć w Django Rest Framework.Django Rest Framework z ChoiceField
Poniżej znajduje się uproszczony kod pokazujący, co robię.
# models.py
class User(AbstractUser):
GENDER_CHOICES = (
('M', 'Male'),
('F', 'Female'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
# serializers.py
class UserSerializer(serializers.ModelSerializer):
gender = serializers.CharField(source='get_gender_display')
class Meta:
model = User
# viewsets.py
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
Zasadniczo co próbuję zrobić, to mieć metody get/post/put użyć wartości wyświetlania pola wyboru zamiast kodu, patrząc coś jak poniżej JSON.
{
'username': 'newtestuser',
'email': '[email protected]',
'first_name': 'first',
'last_name': 'last',
'gender': 'Male'
// instead of 'gender': 'M'
}
Co mam zrobić? Powyższy kod nie działa. Zanim miałem coś takiego, pracując dla GET, ale dla POST/PUT dawało mi to błędy. Szukam ogólnej porady, jak to zrobić, wydaje się, że jest to coś powszechnego, ale nie mogę znaleźć przykładów. Albo to, albo robię coś okropnie nie tak.
Próbowałaś http://www.django-rest-framework.org/api-guide/fields/#serializermethodfield – DAKZH