【发布时间】:2022-01-03 13:32:41
【问题描述】:
我想我在尝试打印 item_name 时遇到了这个错误
让我们考虑一下我的 models.py
class Wastage(models.Model):
client = models.ForeignKey(Client,on_delete=models.CASCADE)
date = models.DateField(auto_now_add=True)
item_name = models.ForeignKey(Items,on_delete=models.CASCADE)
class Items(models.Model):
item_name = models.CharField(max_length=512)
def __str__(self):
return self.item_name
这是我的意见.py
class WastageView(ListView):
template_name = 'wastage_list.django.html'
model = Wastage
context_object_name = "stock_wastage"
def get_context_data(self, **kwargs):
context = super(WastageView, self).get_context_data(**kwargs)
context["faulty_reasons"] = FaultyReason.objects.filter(client=self.request.user.client,is_deleted=False)
return context
def get_queryset(self):
user = self.request.user
client = user.client
query = self.request.GET.get('query')
if query:
return self.model.objects.filter(client=client, name__icontains=query).order_by('-date')
return self.model.objects.filter(client=client).order_by('-date')
现在让我们考虑我的模板wastage_list.django.html
{% for item in stock_wastage %}
<tr>
<td>{{ item.date|date }}</td>
<td>{{ item.item_name }} </td>
</tr>
{% endfor %}
我的问题在于 item_name
这是我的数据库记录的示例
id client_id date item_name_id
1 3 2021-06-24 103
2 3 2021-11-23 21
3 3 2022-01-02 53
这是我的错误回溯
Traceback(最近一次调用最后一次): get 中的文件“/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/fields/related_descriptors.py”,第 172 行 rel_obj = self.field.get_cached_value(实例) 文件“/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/fields/mixins.py”,第 13 行,在 get_cached_value 返回 instance._state.fields_cache[cache_name] KeyError:'item_name'
在处理上述异常的过程中,又发生了一个异常:
Traceback (most recent call last):
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/core/handlers/base.py", line 145, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/core/handlers/base.py", line 143, in _get_response
response = response.render()
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/response.py", line 105, in render
self.content = self.rendered_content
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/response.py", line 83, in rendered_content
return template.render(context, self._request)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/backends/django.py", line 61, in render
return self.template.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 171, in render
return self._render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 163, in _render
return self.nodelist.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 936, in render
bit = node.render_annotated(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
return self.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/loader_tags.py", line 150, in render
return compiled_parent._render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 163, in _render
return self.nodelist.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 936, in render
bit = node.render_annotated(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
return self.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/classytags/core.py", line 154, in render
return self.render_tag(context, **kwargs)
File "/home/harika/lightdegree/lib/python3.7/site-packages/sekizai/templatetags/sekizai_tags.py", line 88, in render_tag
rendered_contents = nodelist.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 936, in render
bit = node.render_annotated(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
return self.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/classytags/core.py", line 154, in render
return self.render_tag(context, **kwargs)
File "/home/harika/lightdegree/lib/python3.7/site-packages/sekizai/templatetags/sekizai_tags.py", line 88, in render_tag
rendered_contents = nodelist.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 936, in render
bit = node.render_annotated(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
return self.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/classytags/core.py", line 154, in render
return self.render_tag(context, **kwargs)
File "/home/harika/lightdegree/lib/python3.7/site-packages/sekizai/templatetags/sekizai_tags.py", line 88, in render_tag
rendered_contents = nodelist.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 936, in render
bit = node.render_annotated(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
return self.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/loader_tags.py", line 62, in render
result = block.nodelist.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 936, in render
bit = node.render_annotated(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
return self.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/defaulttags.py", line 309, in render
return nodelist.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 936, in render
bit = node.render_annotated(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
return self.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/defaulttags.py", line 209, in render
nodelist.append(node.render_annotated(context))
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
return self.render(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 986, in render
output = self.filter_expression.resolve(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 670, in resolve
obj = self.var.resolve(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 795, in resolve
value = self._resolve_lookup(context)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/template/base.py", line 836, in _resolve_lookup
current = getattr(current, bit)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/fields/related_descriptors.py", line 186, in __get__
rel_obj = self.get_object(instance)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/fields/related_descriptors.py", line 153, in get_object
return qs.get(self.field.get_reverse_related_filter(instance))
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/query.py", line 411, in get
num = len(clone)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/query.py", line 258, in __len__
self._fetch_all()
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/query.py", line 1261, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/query.py", line 74, in __iter__
for row in compiler.results_iter(results):
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1081, in apply_converters
value = converter(value, expression, connection)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/backends/sqlite3/operations.py", line 286, in converter
return create_decimal(value).quantize(quantize_value, context=expression.output_field.context)
TypeError: argument must be int or float
请帮我显示item_name
【问题讨论】:
-
这里的
Items是什么?Wastage似乎对Items不是JobItems有一个 FK? -
我已经编辑了我的代码,请检查
-
确实生成了 hat?该页面是否包含循环中的任何
<tr>s? -
请看看我的错误回溯我已经编辑了我的问题
-
@VEERABABU 你试过这个吗:
<td>{{ item.item_name.item_name }} </td>
标签: python django django-models django-views django-templates