TypeError: аргумент должен быть int или float в Django 3.0
Здесь я предполагаю, что получаю эту ошибку при попытке вывести имя_элемента
рассмотрим мой 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
вот мой views.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 %}
Здесь моя проблема связана с именем_элемента
вот пример записи моей базы данных
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 (последний последний вызов): File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/fields/related_descriptors.py", line 172, in get. rel_obj = self.field.get_cached_value(instance) Файл "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/fields/mixins.py", строка 13, in get_cached_value return instance._state.fields_cache[имя_кэша]. KeyError: 'item_name'
Во время обработки вышеуказанного исключения произошло другое исключение:
Пожалуйста, помогите мне отобразить имя_предмета
В основном 'KeyError' происходит из-за несуществующей переменной или экземпляра. В вашем случае, я думаю, вам следует вызвать "item_name_id" вместо "item_name"