你好,我想将更多字段连接到 Django 中,但即使是这个简单的代码:
Project.objects.annotate(
companyname=Concat('company__name',Value('ahoj')),output_field=CharField()
)
给我一个错误:
AttributeError: 'CharField' object has no attribute 'resolve_expression'
回溯:
File "/root/MUP/djangoenv/lib/python3.4/site-packages/django/db/models/manager.py", line 122, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/root/MUP/djangoenv/lib/python3.4/site-packages/django/db/models/query.py", line 908, in annotate
clone.query.add_annotation(annotation, alias, is_summary=False)
File "/root/MUP/djangoenv/lib/python3.4/site-packages/django/db/models/sql/query.py", line 986, in add_annotation
annotation = annotation.resolve_expression(self, allow_joins=True, reuse=None,
AttributeError: 'CharField' object has no attribute 'resolve_expression'
最佳答案
你在错误的地方有一个右括号。 output_field
是 Concat
的参数,而不是 annotate
的参数。应该是:
Project.objects.annotate(
companyname=Concat('company__name', Value('ahoj'), output_field=CharField()),
)
关于python - Django annotate() 错误 AttributeError : 'CharField' object has no attribute 'resolve_expression' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35289273/