class Property(models.Model):
title = models.CharField(max_length=255)
class CurrentPrice(models.Model):
current = models.ForeignKey(Current)
prop = models.ForeignKey(Property)
price = models.DecimalField(max_digits=5, decimal_places=2)
class Current(models.Model):
name = models.CharField(max_length=20)
views.py:
...
p = Property.objects.all()
return render_to_response('index.html',{'p':p},context_instance=RequestContext(request))
如何获取price
的{{1}}并将其显示在我的模板中?
模板:
Property
答案 0 :(得分:1)
我不确定你的目的/模型设计是什么,从你所展示的内容看起来不合适。
每个CurrentPrice
对象会有很多Property
个,所以在模板中你可以做的是
{% for item in p %}
{{ item.title }}
{% for cp in item.currentprice_set.all %}
{{ cp.price }}
{% endfor %}
{% endfor %}
答案 1 :(得分:1)
如果Property可以有多个CurrentPrice对象(默认情况下是这样):
{% for item in p %}
{{ item.title }}
{% for current_price in item.currentprice_set.all %}
{{ current_price.price }}
{% endofor %}
{% endfor %}
如果只有一个(但在这种情况下最好使用o2o字段而不是FK字段,那么你可以防止多个CurrentPrice记录指向同一个属性):
{% for item in p %}
{{ item.title }}
{{ item.currentprice_set.get.price }}
{% endfor %}
答案 2 :(得分:0)
我认为你要做的就是下面的事情。
class Property(models.Model):
title = models.CharField(max_length=255)
@property
def current_price(self):
# The current price is the last price that was given.
if self.pricing_history.count() > 0:
return self.pricing_history.order_by('-when')[0].amount
return None
class Price(models.Model):
prop = models.ForeignKey(Property, related_name='pricing_history')
amount = models.DecimalField(max_digits=5, decimal_places=2)
when = models.DateTimeField(auto_now_add=True)
模板中的示例:
{% for item in p %}
{{ item.title }}
{{ item.current_price }}
{% endfor %}