Модель изделия (представляет продукт, подобный MacBook)
class Item(models.Model):
name = models.CharField(max_length=100)
description = models.CharField(max_length=100)
manufacturer = models.ForeignKey('Manufacturer', blank=True, null=True, on_delete=models.SET_NULL)
introduction = models.DateField(auto_now=True)
is_retired = models.BooleanField(default=False)
tags = models.ManyToManyField(Tag)
def __str__(self):
return self.name
OnHand Модель (представляет сериализованный MacBook)
class OnHand(models.Model):
name = models.CharField(max_length=100)
serial = models.CharField(max_length=80)
asset = models.CharField(max_length=20)
product = models.ForeignKey(Item, blank=True, null=True, on_delete=models.CASCADE)
tags = models.ManyToManyField(Tag)
def __str__(self):
return self.serial
Индекс
Индексная функция
def index(request):
items = Item.objects.all()
context = {
'items':items,
}
print(items)
return render(request, 'index.html', context)
Template / таблица
<table class="table table-hover">
<thead class="thead-light">
<tr>
<th>Item Id</th>
<th>Title</th>
<th>Manufacturer</th>
<th>On Hand</th>
<th>Category Id</th>
</tr>
</thead>
<tbody>
{% for item in items %}
<tr>
<td>{{ item.pk }}</td>
<td>{{ item.name }}</td>
<td>{{ item.manufacturer }}</td>
<td>{{ item.quanity }}</td>
</tr>
{% endfor %}
</tbody>
</table>
Это приложение представляет собой систему управления запасами, которая может принимать элементов , таких как MacBook Pro или iPhone 6, и OnHands , которые являются сериализованными экземплярами этих элементов. В моей индексной функции я передаю результат all()
запроса в индексное представление в контексте .
Я могу запросить OnHand.objects.filter(product_id=item.pk)
, чтобы получить количество каждого Предмета , однако, в моем текущем способе работы я не уверен, как передать это значение внешнему интерфейсу, сохраняя при этом его взаимосвязь если это имеет смысл.
Я бы хотел, чтобы item.quanity
по существу представлял количество этого конкретного предмета. Что я ищу? Сначала я хотел добавить QuerySet, но я не уверен, как это сделать.