Call object in template after _meta.get_fields()
所以我有很多与父模型有关的模型。 像这样
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | class Part(models.Model): name = models.CharField(max_length=550) class Stock(models.Model): name = models.CharField(max_length=550) class StockArea(models.Model): area = models.CharField(max_length=550) stock = models.ManyToManyField(Stock, related_name='stockarea_stock') class Si(models.Model): name = models.CharField(max_length=50) si_unit = models.CharField(max_length=10) class Quantity(models.Model): quantity = models.DecimalField(max_digits=10, decimal_places=2) si = models.ManyToManyField(Si, related_name='quantity_si') part = models.ManyToManyField(Part, related_name='quantity_part') stockarea = models.ManyToManyField(StockArea, related_name='quantity_stockarea') class Image(models.Model): image = models.FileField() part = models.ManyToManyField(Part, related_name='image_part') |
当我想要零件的详细视图时,我想显示零件名称,数量,图像,库存面积等。
因此,对于详细视图,viw看起来像这样
1 2 3 4 5 6 7 | def details(request, part_id): part = get_object_or_404(Part, pk=part_id) part = part._meta.get_fields() context = { 'part': part, } return render(request, 'part/details.html', context) |
尝试调用模板中的所有内容时会出现问题。
我可以只调用一部分来显示对象:
但是我希望能够调用零件的名称,例如:
我知道这很麻烦,因为相关字段也称为"名称"。 所以我以为我可以这样称呼它:
或当我想显示数量时:
没有任何工作。 所以我的问题是,如何调用对象中的数据?
谢谢!
您获得的
1 2 3 | {% for image_object in part.image_part.all %} <img src="{{ image_object.image.url }}" /> {% endfor %} |
也就是说,删除此行后:
1 | part = part._meta.get_fields() |
没有任何理由这样做。 需要访问_meta的情况很少。