[英]Django REST Framework - serializer users
I would like to add new offer using username
instead of userID
.我想使用
username
而不是userID
添加新优惠。
Could you please advise how this should be managed with user_receiver
?您能否建议如何使用
user_receiver
进行管理?
models.py模型.py
User = get_user_model()
class Offer(models.Model):
user_sender = models.ForeignKey(User, related_name='user_sender', on_delete=models.CASCADE)
user_receiver = models.ForeignKey(User, related_name='user_receiver', on_delete=models.CASCADE)
serializer.py序列化程序.py
class OfferSerializer(serializers.ModelSerializer):
current_user = serializers.CharField(default=serializers.CurrentUserDefault())
user_receiver = ???
class Meta:
model = Offer
fields = ('user_sender', 'user_receiver')
You can try :你可以试试 :
serializer.py序列化程序.py
class OfferSerializer(serializers.ModelSerializer):
current_user = serializers.PrimaryKeyRelatedField(
read_only=True,
default=serializers.CurrentUserDefault()
)
user_receiver = serializers.SerializerMethodField()
user_sender = serializers.SerializerMethodField()
class Meta:
model = Offer
fields = ('user_sender', 'user_receiver')
def get_user_receiver(self , obj):
return self.context['request'].user.user_receiver
def get_user_sender(self , obj):
return self.context['request'].user.user_sender
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.