Я продолжаю получать ошибку 403 forbidden в Django

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

@api_view(["POST"])
def login_view(request):
    data = request.data
    username = data["username"]
    password = data["password"]
    if request.user.is_authenticated:
        return Response("hpr")
    else:
        user = authenticate(request, username=username, password=password)

        if user is not None:
            login(request, user)
            return Response("hpr")
    return Response("An error occured, please try again later.")

это представление входа в систему. Я создал модель с внешним ключом, это тоже может быть проблемой.

class Note(models.Model):
    body = models.TextField(null=True, blank=True)
    updated = models.DateTimeField(auto_now=True)
    author = models.ForeignKey(User, related_name="notes", on_delete=models.CASCADE, null=True)
    created = models.DateTimeField(auto_now_add=True)


    def __str__(self):
        return self.body[0:50]

вот представление, которое создает заметку :

@api_view(['POST'])
def createNote(request):
    data = request.data
    note = Note.objects.create(
        body=data['body'],
    )
    serializer = NoteSerializer(note, many=False)
    return Response(serializer.data)

Проблема 2: У меня есть еще одно сомнение. У меня есть функция, которая получает заметки из базы данных и отображает их. Я сделал так, чтобы сериализованная функция получала все поля модели заметок. Но когда я пытаюсь получить доступ к полю "author", я получаю пустой массив из фронтенда (я использую react js).

@api_view(["GET"])
def getNotes(request):
    notes = Note.objects.all().order_by("-updated")
    serializer = NoteSerializer(notes, many=True)
    return Response(serializer.data)

Я также могу подтвердить, что это не проблема фронтенда, я протестировал фронтенд с console.log и он работает.

Причина проблемы 1 : После тестирования с помощью postman, я обнаружил, что это проблема с токенами csrf! Я не уверен, как это исправить. Пожалуйста, помогите мне.

Попробовать

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
@api_view(['POST'])
def createNote(request):
    data = request.data
    note = Note.objects.create(
        body=data['body'],
    )
    serializer = NoteSerializer(note, many=False)
    return Response(serializer.data)
Вернуться на верх