Ошибки при начале работы с 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, поэтому вполне возможно, что я допустил ошибку на этом уровне.
Есть идеи, где я ошибаюсь? Я даже не могу начать и чувствую себя очень глупо.