[英]Django REST Framework - How to get current user in serializer
我有TransactionSerializer :
class TransactionSerializer(serializers.ModelSerializer):
user = UserHider(read_only=True)
category_choices = tuple(UserCategories.objects.filter(user=**???**).values_list('category_name', flat=True))
category = serializers.ChoiceField(choices=category_choices)
def create(self, validated_data):
user = self.context['request'].user
payment_amount = self.validated_data['payment_amount']
category = self.validated_data['category']
organization = self.validated_data['organization']
description = self.validated_data['description']
return Transaction.objects.create(user=user, payment_amount=payment_amount, category=category,
organization=organization, description=description)
class Meta:
model = Transaction
fields = ('user', 'payment_amount', 'date', 'time', 'category', 'organization', 'description')
這完全可以完成工作,但是我需要它而不是“???” 當前用戶的 ID,但我不太明白我可以使用什么基本的 ModelSerializer 方法以免損壞任何東西,但同時將當前用戶作為變量以便稍后在過濾位置替換它(在在這種情況下,如果我放置一些已經注冊的特定用戶 ID,則類別會被過濾,然后在DRF表單上,當創建 object 時,我會得到一個下拉列表,其中包含僅特定於我的用戶的類別)?
我已經嘗試通過get_user()方法執行此操作,並且還嘗試創建一個從另一個序列化程序繼承的變量,該變量僅定義用戶 ID,但我收到了各種錯誤。
UserCategories.objects.filter(user=user.id)
我想這就是你想要的?? 您當前的用戶 ID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.