Как использовать модели Django с перечислением в REST API?

Я использую модель User для хранения данных пользователя:

class User(models.Model):
    MEMBERSHIP_BRONZE = 'B'
    MEMBERSHIP_SILVER = 'S'
    MEMBERSHIP_GOLD = 'G'
    
    MEMBERSHIP_CHOICES = [
    (MEMBERSHIP_BRONZE, 'Bronze')
    (MEMBERSHIP_SILVER, 'Silver')
    (MEMBERSHIP_GOLD, 'Gold')
    ]
    name = models.CharField(max_length=255)
    email = models.EmailField(unique=True)
    phone = models.CharField(max_length=255)
    membership = models.CharField(max_length=1, choices=MEMBERSHIP_CHOICES, default=MEMBERSHIP_BRONZE)

Когда клиент создается с помощью post api, я хочу разрешить только эти три значения Bronze для MEMBERSHIP_BRONZE, Silver для MEMBERSHIP_SILVER и Gold для MEMBERSHIP_GOLD в поле членства. Когда пользователь выбирает варианты членства lebel из ui, мне нужно вставить соответствующее значение. Я не знаю, как это сделать?

serializer.py

class UserSerializer(serializers.ModelSerializer):

    class Meta:
    model = User
    fields = ["name", "email", "phone", "membership"]

views.py

@api_view(["GET", "POST", "PUT"])
def userActions(request):
    if request.method == "GET":
        users = User.objects.all()
        serializer = UserSerializer(users, many=True)
        res = serializer.data
    if request.method == "POST":
        name = request.POST.get("name")
        email = request.user.email
        phone = request.POST.get("phone")
        membership = request.POST.get("membership")
        user = User.objects.create(name=name, email=email, phone=phone, membership=membership)
        serializer = UserSerializer(user)
        res = serializer.data
    return res
Вернуться на верх