python - Django annotate() 错误 AttributeError : 'CharField' object has no attribute 'resolve_expression'

标签 python django

你好,我想将更多字段连接到 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_fieldConcat 的参数,而不是 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/

相关文章:

python - Django、Signals 和另一个进程

django - 父模型(包括子模型)的序列化

python - 如何找到python模块的功能?

python - Django渲染无法找到实际存在的模板

python - 除了继承之外,在 `super() ` 内部使用 python `__init__ ` 的目的是什么?

Python Regex 查找 1000 美元或更多的金额

javascript - django 的 CSS/JavaScript 管理器

python - Django 导入导出 - 无法使用 BinaryField 导入模型

java - 从 java 执行 Jython 脚本并获取结果

python - 时间序列数据的平稳性