Ich möchte auf das Anfrageobjekt in meiner Sichten.py und Serializers.py in DRF zugreifen. Mein Views.py:Zugreifen auf Request-Objekt in Viewset und Serializer in Django Rest Framework?
class ProductViewSet(viewsets.ReadOnlyModelViewSet):
"""
This viewset automatically provides `list` and `detail` actions.
"""
queryset = Product.objects.all()
serializer_class = ProductSerializer(context={'request': request})
Mein Serializers.py:
class ProductSerializer(serializers.HyperlinkedModelSerializer):
get_sr_price = serializers.SerializerMethodField('get_sr_price_func')
def get_sr_price_func(self, obj):
return self.request.user ??
class Meta:
model = Product
fields = (
'title', 'slug', 'product_stores', 'get_sr_price')
In Serializers.py bekomme ich ProductSerializer' object has no attribute 'request'
. Auch in views.py bekomme ich NameError: name 'request' is not defined
Wie kann ich Anfrage Objekt zugreifen? Muss ich es von Ansichten zu Serialisierer übergeben? Was ist der Unterschied zwischen views.py und serializers.py? Generell schreibe ich die gesamte Geschäftslogik in Views.py; hier sollte ich auch alle Abfragen/Filter in den Ansichten tun oder sollte ich sie in Serialisierer tun, oder es macht keinen Unterschied. Neu bei DRF bitte hilfe.
DRF umfasst 'request' Objekt standardmäßig im Kontext. Verwende 'self.context ['request']. User'. –
Das funktioniert. Fügen Sie es hinzu, wie eine Antwort akzeptiert. – Coderaemon