簡體   English   中英

Django REST 框架 - 序列化程序用戶

[英]Django REST Framework - serializer users

我想使用username而不是userID添加新優惠。

您能否建議如何使用user_receiver進行管理?

模型.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)

序列化程序.py

class OfferSerializer(serializers.ModelSerializer):
    current_user = serializers.CharField(default=serializers.CurrentUserDefault())
    user_receiver = ???

    class Meta:
        model = Offer
        fields = ('user_sender', 'user_receiver')

你可以試試 :

序列化程序.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM