Запрещено (CSRF-токен отсутствует.): /ckeditorupload/ в django?

Когда я пытаюсь загрузить изображение в админ-панель django, я получаю следующее Forbidden (CSRF token missing.): /ckeditorupload/ У меня есть этот результат в моей консоли. вот моя модель

from django.db import models
from django.contrib.auth.models import User
from ckeditor.fields import RichTextField
from ckeditor_uploader.fields import RichTextUploadingField
# Create your models here.

STATUS = (
    (0,"Draft"),
    (1,"Publish")
)

class Post(models.Model):
    title = models.CharField(max_length=200, unique=True)
    slug = models.SlugField(max_length=200, unique=True)
    author = models.ForeignKey(User, on_delete= models.CASCADE,related_name='blog_posts')
    updated_on = models.DateTimeField(auto_now= True)
    #content = RichTextField(blank=True, null=True)
    image = RichTextUploadingField()
    #image = models.ImageField(upload_to='featured_image/%Y/%m/%d/') #
    created_on = models.DateTimeField(auto_now_add=True)
    status = models.IntegerField(choices=STATUS, default=0)

    class Meta:
        ordering = ['-created_on']
    

    def __str__(self):
        return self.title

мои взгляды

from django.views import generic
from .models import Post
from django.utils.decorators import method_decorator
from django.views.decorators.csrf import csrf_exempt


    @method_decorator(csrf_exempt, name='dispatch')
    class PostList(generic.ListView):
            queryset = Post.objects.filter(status=1).order_by('-created_on')
            template_name = 'index.html'
    class PostDetail(generic.DetailView):
            model = Post
            template_name = 'post_detail.html'

Я пытался освободить CSRF, но у меня возникают те же проблемы, & когда я удаляю middlewareCsrf, это тоже не работает, так как я использую админку django, а не метод custom post, я не знаю, куда передавать {{ csrf_token }}

Спасибо за помощь :)

Некоторое время назад у меня была похожая проблема, как будто внезапно в пользовательской сессии больше не было доступно csrf_token. После некоторой доработки это решило проблему.

импорт:

from django.middleware.csrf import get_token

в представлении:

csrf_token = get_token(request)

context = {
    "csrf_token": csrf_token,
}

В шаблоне я все еще использую {% csrf_token %}, но я также делаю некоторые вызовы API в JavaScript и в них я вместо этого использую непосредственно токен, который я передал через контекст -> {{ csrf_token }}

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