Django Elastic Search: AttributeError: тип объекта «PostDocument» не имеет атрибута «Django» - PullRequest
0 голосов
/ 29 июня 2019

Я очень новичок в elasetic search в django ... Когда я запускаю эту команду, python3 manage.py search_index --rebuild выдает мне эту ошибку: я не понимаю, что с ней не так

File "/home/pyking/.local/lib/python3.6/site-packages/django_elasticsearch_dsl/registries.py", line 39, in register_document
    django_meta = getattr(document, 'Django')
AttributeError: type object 'PostDocument' has no attribute 'Django'

Это мойdocuments.py

from django_elasticsearch_dsl import DocType, Index
from blog2.models import Article

posts = Index('articles')

@posts.doc_type
class PostDocument(DocType):
    class Meta:
        model = Article

        fields = [
            'alias',
            'author',
            'title',
            'body',
            'category',
        ]

и это мои модели:

class Article(models.Model):
    alias = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='author')
    title = models.CharField(max_length=200)
    body = models.TextField()
    category = models.ForeignKey(Category, on_delete=models.CASCADE)

Я не понимаю, что не так с моим кодом, даже если он не вызывает у меня проблемы с кодом, он запускаетмне какая-то странная ошибка ..

1 Ответ

1 голос
/ 29 июня 2019

Это не Meta класс, это должен быть Django класс, который вы должны создать и сообщить модели, полям и другим конфигурациям, связанным с этим документом и его моделью.Пожалуйста, смотрите документацию, и это пример примера.https://github.com/sabricot/django-elasticsearch-dsl#quickstart

from django_elasticsearch_dsl import Document, Index
from django_elasticsearch_dsl.registries import registry
from blog2.models import Article

posts = Index('articles')

@registry.register_document
@posts.document
class PostDocument(Document):
    class Django:
        model = Article

        fields = [
            'alias',
            'author',
            'title',
            'body',
            'category',
        ]
...