Django возвращает «Вам не разрешено выполнять это действие». при создании новой записиPython

Программы на Python
Anonymous
Django возвращает «Вам не разрешено выполнять это действие». при создании новой записи

Сообщение Anonymous »

У меня есть приложение, в котором я хочу запускать сценарии. Эти сценарии хранятся в базе данных. Вот как я все это делаю с помощью Django 5.0.1:
Прежде всего, это мой файл настроек:

Код: Выделить всё

#...

INSTALLED_APPS = [
# Django apps
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

# My apps
'personal',
]

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

#...
Это мой файл URL-адресов:

Код: Выделить всё

from django.contrib import admin

urlpatterns = [
path('admin/', admin.site.urls),
#...
]
Это файл моей модели:

Код: Выделить всё

from django.db import models
from django.core.exceptions import ValidationError
from django.conf import settings

from os.path import join

class Product(models.Model):
name = models.CharField(max_length=50, null=False, blank=False, unique=True)

def __str__(self):
return self.name

class Type(models.Model):
short_name = models.CharField(max_length=3, null=False, blank=False, unique=True)
complete_name = models.CharField(max_length=30, null=False, blank=False)

def __str__(self):
return self.complete_name

class Version(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
version = models.CharField(max_length=30, null=False, blank=False)

constraints = [
models.UniqueConstraint(fields=['product', 'version'], name='unique_product_version'),
]

def __str__(self):
return f"{self.product} {self.version}"

class TypeTestRelation(models.Model):
type = models.ForeignKey(Type, null=False, blank=False, related_name='attributed_tests', on_delete=models.CASCADE)
test = models.ForeignKey(Test, null=False, blank=False, on_delete=models.CASCADE)

class Meta:
unique_together = ['type', 'test']

class Test(models.Model):
name = models.CharField(max_length=50, null=False, blank=False, unique=True)
file = models.FileField(upload_to=join(join(settings.BASE_DIR, "static"), "scripts"), null=True, blank=False)  # Add the file field
test_result = models.FileField(upload_to=join(join(settings.BASE_DIR, "static"), "test_results"), null=True, blank=True, editable=False)
versions = models.ManyToManyField(Version, through='TestVersionRelation')
types = models.ManyToManyField(Type, through='TypeTestRelation')

def __str__(self):
return self.name
Это файл администратора:

Код: Выделить всё

# ----------------- Test form -----------------
from typing import Any
from django import forms
from django.contrib import admin
from .models import Product, Type, Version, Test, TestVersionRelation, TypeTestRelation

class TypeTestRelationInline(admin.TabularInline):
model = TypeTestRelation
extra = 1

class TestVersionRelationInline(admin.TabularInline):
model = TestVersionRelation
extra = 1

class TestAdminForm(forms.ModelForm):
class Meta:
model = Test
fields = '__all__'

def clean(self):
cleaned_data = super().clean()

class TestAdmin(admin.ModelAdmin):
form = TestAdminForm
inlines = (TestVersionRelationInline, TypeTestRelationInline,)
list_display = ('name','file', 'test_result')

admin.site.register(Product)
admin.site.register(Type)
admin.site.register(Version)
admin.site.register(Test, TestAdmin)
Теперь проблема? Ну, во-первых, его нет. Я создал суперпользователя с помощью команды createsuperuser. Затем я вхожу в систему и создаю: один продукт, две версии (ранее созданного продукта) и 4 типа.
Все хорошо, объекты создаются, но когда я пытаюсь добавить тест...
Изображение
Я получаю эту ошибку:
Изображение

(С выбором какой-либо версии или типов или без них).
Чтобы быть уверенным, что я подтвердил свою учетную запись администратора:
Изображение
Изображение

Почему у меня возникает эта ошибка? Конечно, у меня должны быть все права. Для создания теста я не делал ничего особенного, чем для других моделей. Конечно, я использовал встроенные строки с полем ManyToMany, но я уже делал это в другом проекте, и все работало нормально. Что я здесь делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/787 ... ting-a-new

Вернуться в «Python»