Фильтровать запрос в сериализаторе django с помощью текущего вошедшего пользователя

Помогите, пожалуйста,

Итак, я делаю запрос с помощью сериализатора, и мне нужно отфильтровать ответ по текущему зарегистрированному пользователю. Я думал сделать запрос, используя serializerMethodField, но это тип только для чтения, поэтому я не смогу ничего с ним сделать. В частности, эта строка кода, которая необходима для моей формы, поскольку она будет извлекать все кошельки, связанные с текущим пользователем, в поле выбора, не будет работать :

to = serializers.PrimaryKeyRelatedField(queryset=serializers.SerializerMethodField('get_user_wallets'))

Я также думал о том, как кастрировать возвращаемый тип, который я получу из метода get_user_wallets, во что-то, что я могу использовать в качестве кверисета. Но, похоже, это не так просто сделать. Может быть, у кого-то есть лучший подход для выполнения того, что я хочу.

Ниже приведен код :

class TransactionSerializer(serializers.HyperlinkedModelSerializer):
    to = serializers.PrimaryKeyRelatedField(queryset=serializers.SerializerMethodField('get_user_wallets'))

    class Meta:
        model = Transaction
        fields = ['amount', 'to']

    def get_user_wallets(self, obj):
        request = self.context.get('request', None)
        if request:
            wallet = Wallet.objects.filter(user_id=request.user.pk)
            return wallet

Спасибо за ваши ответы и предложения.

Вернуться на верх