Ошибки при начале работы с django-eav2

Я пытаюсь сделать простое приложение для создания пользователями тестов множественного выбора друг для друга, где они могут указать, какой тип данных должен применяться к ответу на каждый вопрос. Для этого я пытаюсь заставить работать django-eav2, следуя руководству this. Однако, как только я пытаюсь сделать makemigrations.

я сталкиваюсь с ошибками.

Использование eav.register:

from django.db import models                                                                                          
from django.utils.translation import ugettext as _
from eav.models import Attribute

class Question(models.Model):
    class DataType(models.TextChoices):
        TEXT = 'TXT', _('Text')
        INTEGER = 'INT', _('Integer (whole number)')
        FLOAT = 'FLT', _('Float (number with fractional parts, e.g. 3.14159)')
    question_text = models.CharField(max_length=400)
    question_type = models.CharField(max_length=3, choices=DataType.choices, default=DataType.TEXT)

class Answer(models.Model):
    question = models.ManyToManyField(Question)

import eav 
eav.register(Answer)
Attribute.objects.create(slug='txt_value', datatype=Attribute.TYPE_TEXT)
Attribute.objects.create(slug='int_value', datatype=Attribute.TYPE_INT)
Attribute.objects.create(slug='flt_value', datatype=Attribute.TYPE_FLOAT)

Я получаю "django.db.utils.OperationalError: no such table: eav_attribute"

Использование декораторов:

from django.db import models                                                                                          
from django.utils.translation import ugettext as _
from eav.models import Attribute
from eav.decorators import register_eav

#Dynamic user-specified data types is tricky, see
# https://stackoverflow.com/questions/7933596/django-dynamic-model-fields
class Question(models.Model):
    class DataType(models.TextChoices):
        TEXT = 'TXT', _('Text')
        INTEGER = 'INT', _('Integer (whole number)')
        FLOAT = 'FLT', _('Float (number with fractional parts, e.g. 3.14159)')
    question_text = models.CharField(max_length=400)
    question_type = models.CharField(max_length=3, choices=DataType.choices, default=DataType.TEXT)

@register_eav
class Answer(models.Model):
    question = models.ManyToManyField(Question)

Attribute.objects.create(slug='txt_value', datatype=Attribute.TYPE_TEXT)
Attribute.objects.create(slug='int_value', datatype=Attribute.TYPE_INT)
Attribute.objects.create(slug='flt_value', datatype=Attribute.TYPE_FLOAT)

Я получаю "TypeError: register_eav() принимает 0 позиционных аргументов, но был задан 1"

Версия venv python - Python 3.9.7, django 3.1.13, django-eav2==1.1.0. У меня также есть django-cms==3.8.0 в проекте, хотя он не находится в этом каталоге app, если это имеет значение. Я совсем новичок в Django, поэтому вполне возможно, что я допустил ошибку на этом уровне.

Есть идеи, где я ошибаюсь? Я даже не могу начать и чувствую себя очень глупо.

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