Поле (Wagtail) определяет связь с моделью ‘wagtailimages.Images’, которая либо не установлена, либо является абстрактной

#django #database #django-models #backend #wagtail

#django #База данных #django-models #серверная часть #wagtail

Вопрос:

У меня проблема с Wagtail / Django.

У меня есть файл app/models/abstract_card_snippet.py , который содержит:

 from django.db import models
from wagtail.admin.edit_handlers import FieldPanel
from wagtail.documents.edit_handlers import DocumentChooserPanel

    # Abstract Card Snippet
    class AbstractCardSnippet(models.Model):
        title = models.CharField(max_length=255)
        text = models.CharField(max_length=255, null=True, blank=True)
        url = models.URLField(max_length=255, null=True, blank=True,)
        image = models.ForeignKey(
            'wagtailimages.Images',
            null=True,
            blank=True,
            on_delete=models.SET_NULL,
            related_name=' '
        )
    
        panels = [
            FieldPanel('title'),
            FieldPanel('text'),
            FieldPanel('url'),
            ImageChooserPanel('image'),
        ]
    
        def __str__(self):
            return '{}'.format(self.title)
    
        class Meta:
            abstract = True
  

Тогда в app/models/generic_card_snippet.py есть:

 from wagtail.snippets.models import register_snippet
from .abstract_card_snippet import AbstractCardSnippet

@register_snippet
class GenericCard(AbstractCardSnippet):
    pass
  

Но когда я запускаю проект или пытаюсь выполнить миграцию, появляется эта ошибка:

 web_1      | Exception in thread django-main-thread:
web_1      | Traceback (most recent call last):
web_1      |   File "/usr/local/lib/python3.6/threading.py", line 916, in _bootstrap_inner
web_1      |     self.run()
web_1      |   File "/usr/local/lib/python3.6/threading.py", line 864, in run
web_1      |     self._target(*self._args, **self._kwargs)
web_1      |   File "/usr/local/lib/python3.6/site-packages/django/utils/autoreload.py", line 54, in wrapper
web_1      |     fn(*args, **kwargs)
web_1      |   File "/usr/local/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 117, in inner_run
web_1      |     self.check(display_num_errors=True)
web_1      |   File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 436, in check
web_1      |     raise SystemCheckError(msg)
web_1      | django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues:
web_1      |
web_1      | ERRORS:
web_1      | app_snippets.GenericCard.image: (fields.E300) Field defines a relation with model 'wagtailimages.Images', which is either not installed, or is abstract.
web_1      | app_snippets.GenericCard.image: (fields.E307) The field app_snippets.GenericCard.image was declared with a lazy reference to 'wagtailimages.images', but app 'wagtailimages' doesn't provide model 'images'.
  

Я не знаю, в чем проблема, не смог найти ничего, относящегося к проблеме.

Комментарии:

1. Попробуйте изменить wagtailimages.Images на wagtailimages.Image

2. Спасибо, Дэн, я действительно не знаю, как пометить ваш комментарий как решение, но это было то, что решило эту проблему для меня.

3. Рад это слышать, Франко. Я просто сделал комментарий, поскольку это был небольшой элемент. Похоже, вы нажали стрелку вверх рядом с комментарием — достаточно хорошо.