Как установить владельца созданного объекта по умолчанию в DRF?
Я хочу сохранить объект автомобиля с request.user
в качестве владельца (поле в модели Car
).
Мой код:
views.py
class CarViewSet(viewsets.ModelViewSet):
serializer_class = CarSerializer
queryset = Car.objects.all()
lookup_field = 'slug'
permissions_classes = [IsAuthenticated]
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
def get_queryset(self, *args, **kwargs):
print(self.request.user.email)
print(self.request.user.is_authenticated)
return self.queryset.filter(owner=self.request.user.pk)
Когда я посещаю страницу frontend, у меня отображается список моих автомобилей. Поля email
и is_authenticated
(True) выводятся правильно. Все в порядке, пока я не пытаюсь обновить страницу - данные исчезают, и я получаю ошибку:
print(self.request.user.email)
AttributeError: 'AnonymousUser' object has no attribute 'email'
is_authenticated
поле установлено в False соответственно.
Я также пробовал включить поле owner
в CarSerializer
:
owner = serializers.HiddenField(default=serializers.CurrentUserDefault())
Но ничего не изменилось.
Как я могу это исправить?