Internal Server Error: /achieve Traceback (most recent call last): File "E:\djangopro\JD\lib\site-packages\django\core\handlers\exception.py", line 55, in inner response = get_response(request) File "E:\djangopro\JD\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "E:\djangopro\first\views.py", line 121, in achieve product_year = models.Order.objects.values(year=ExtractYear('orderDate'),proName = F('productName')).filter(year=ye).annotate(totalsale=Sum('productSale'), totalProfit = Sum('produ ctProfit'), File "E:\djangopro\JD\lib\site-packages\django\db\models\manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) path, final_field, targets, rest = self.names_to_path( File "E:\djangopro\JD\lib\site-packages\django\db\models\sql\query.py", line 1681, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'productName' into field. Choices are: id, orderDate, orderId, shipDate, year
时间: 2023-07-21 16:51:07 浏览: 140
Mac下anaconda中Spyder打开报错Traceback(most recent call last)…问题
5星 · 资源好评率100%
这个错误信息显示在执行 `models.Order.objects.values(year=ExtractYear('orderDate'),proName=F('productName')).filter(year=ye).annotate(totalsale=Sum('productSale'), totalProfit=Sum('productProfit'))` 时出现了问题。
从错误信息来看,Django 无法将 `productName` 解析为一个有效的字段名,因为该字段名在你的 `Order` 模型中不存在。错误信息中也提供了一些可用的字段名,包括 `id`、`orderDate`、`orderId`、`shipDate` 和 `year`,你需要检查一下你的 `Order` 模型中是否存在名为 `productName` 的字段。
如果你的 `Order` 模型中确实存在名为 `productName` 的字段,那么你需要检查一下该字段名是否正确拼写,或者是否使用了正确的大小写。你还可以尝试使用 `__` 来访问该字段的关联模型,例如 `product__name`。
如果你的 `Order` 模型中确实不存在名为 `productName` 的字段,那么你需要检查一下你的查询是否正确,在查询中使用了正确的字段名。你还可以检查一下你的模型定义,确保你的模型中包含了你需要的字段。
阅读全文