Request.user всегда возвращает значение AnonymousUser

Я создал django model, который включает внешний ключ к пользователю следующим образом:

from authentication.models import User
from django.db import models

class Event(models.Model):
    
    user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
    dr_notice_period = models.IntegerField(blank=True, null=True)
    dr_duration = models.IntegerField(blank=True, null=True)
    dr_request = models.FloatField(blank=True, null=True)

Мой serializers.py файл выглядит следующим образом:

class EventSerializer(serializers.ModelSerializer):

    user = UserSerializer(many=True, read_only=True)

    class Meta:
        model = Event
        fields = ['user', 'dr_notice_period', 'dr_duration', 'dr_request']

Моя views.py следующая:

from rest_framework.response import Response
from rest_framework.decorators import api_view
from rest_framework import status

from vpp_optimization.serializers import EventSerializer

@api_view(['POST'])
def event(request):

    serializer = EventSerializer(data=request.data)

    if serializer.is_valid():
        instance = serializer.save(commit=False)
        instance.user = request.user
        instance.save()
        return Response({"status": "success", "data": serializer.data}, status=status.HTTP_200_OK)
    else:
        return Response({"status": "error", "data": serializer.errors}, status=status.HTTP_400_BAD_REQUEST)

Мне нужно сделать следующее: перейти на URL и войти в систему как пользователь. Затем мне нужно перейти на другой URL и добавить с помощью POST-запроса некоторые подробности о event и сохранить эти подробности, а также user в базе данных. Однако после входа и POST-запроса я получаю следующую ошибку:

Cannot assign "<django.contrib.auth.models.AnonymousUser object at 0x7f7daf1469d0>": "Event.user" must be a "User" instance.

Кажется, что он всегда возвращает AnonymousUser, хотя я вошел в систему. Есть идеи, как я могу решить эту проблему?

вы должны будете предоставить

permission_classes = [IsAuthenticated]  # DjangoModelPermissionsWithRead

в ваших взглядах.

Edits.

каждый раз, когда вы обращаетесь к своим представлениям для любого типа запроса, вы должны передавать токен, такой как.

axios
  .get(
    `http://localhost:8000/anything`,
    {
      headers: {
        Authorization: `Token ${token}`,
      },
    }
  )
Вернуться на верх