Reputation: 3155
I have a non-model serializer which looks like this:
class NonModelSerializer(Serializer):
secret_number = IntegerField()
user = ???
def save(**kwargs):
... do something with the secret number and user ...
What shall be written instead of ???
so that my serializer accepts ID of a user and in save()
method, I see the user of the given ID in the user
field? Something like ModelChoiceField
from plain Django.
Upvotes: 0
Views: 480
Reputation: 2040
you should use PrimaryKeyRelatedField
,:
class NonModelSerializer(serializers.Serializer):
user = serializers.PrimaryKeyRelatedField(queryset=User.objects.all())
secret_number = serializers.IntegerField()
class Meta:
fields = ('user', 'secret_number')
def create(self, validated_data):
print(self.validated_data)
pass
def update(self, instance, validated_data):
pass
I suggest you override create
and update
instead of save
, but you can access the selected user in save
by self.validated_data
too.
Upvotes: 1