所以我有很多与父模型有关系的模型。喜欢这个
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在详细视图中看起来像这样
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)
尝试调用模板中的所有内容时出现问题。
我可以通过调用部分显示对象:{{ part }}
但我希望能够调用部件的名称,例如:{{ part.name }}
我知道这很麻烦,因为相关字段也称为“名字”。所以我以为我可以这样称呼它:{{ part.Part.name }}
或当我想显示数量时:{{ part:Quantity.quantity }}
没有工作。所以我的问题是,如何从对象中调用数据?
谢谢!
答案 0 :(得分:1)
您获得的part
对象是一个模型实例。您可以将其用作模型实例。所以这才有效:
{% for image_object in part.image_part.all %}
<img src="{{ image_object.image.url }}" />
{% endfor %}
也就是说,删除此行后:
part = part._meta.get_fields()
没有任何理由这样做。您需要访问_meta的时机很少见。