/ / Предаване на допълнителни данни при преминаване през serializer django остатъчна рамка - python, django, api, serialization, django-rest-framework

Предаване на допълнителни данни при преминаване през serializer django остатъчна рамка - python, django, api, serialization, django-rest-framework

Търся да предам допълнителни данни в serializer, но не може да направи това. По-долу е моят код views.py

device_id = request.META.get("HTTP_DEVICE", "")
user_data = request.data
serializer = UserSerializer(data=user_data)

Искам да предавам и id на устройството с user_data. Опитах речник, но не получава данните. Предложете синтаксис

Отговори:

0 за отговор № 1

Въпросът ви не съдържа никакви съществени подробности относно модела ви на декларации или сериализатори, но това все още изглежда погрешно. Не трябва да правите нещо подобно.

Вместо това вашият модел трябва да е нещо подобно

class User(model):

# declarations of id, account_name, HTTP_DEVICE, etc.

И тогава вашият serializer,

class UserSerializer(serializers.ModelSerializer):

class Meta:
model = User
fields = ("id", "HTTP_DEVICE", "account_name")

След това сериализаторът ще има всички тези полета.

Моля, направете справка с django рамкова документация за почивка.


0 за отговор № 2

Можете да преминете контекст към вашия Сериализатор като:

serializer = UserSerializer(data=request.data, context={"YOUR_CONTEXT": CONTEXT_OBJ})

И след това я вкарайте в валидния си метод като:

    def validate(self, data):
CONTEXT_OBJ = self.context.get("YOUR_CONTEXT")
...

Надявам се, че това може да ви помогне!

Късмет!