3 django elasticsearch django-rest-framework elasticsearch-dsl elasticsearch-dsl-py
我在 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'
Run Code Online (Sandbox Code Playgroud)
这是我的 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',
]
Run Code Online (Sandbox Code Playgroud)
这是我的模型:
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)
Run Code Online (Sandbox Code Playgroud)
我没有发现我的代码有什么问题,即使它没有触发我的代码问题,它也触发了我一些奇怪的错误..
Aks*_*ngh 10
这不是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',
]
Run Code Online (Sandbox Code Playgroud)