【发布时间】:2013-10-27 00:25:46
【问题描述】:
models.py
class farm_model(models.Model):
name=models.CharField(max_length=30)
views.py
def farms(request):
farms=farm_model.objects.all()
context = { 'farms': farms }
return render(request, 'farms.html', context)
农场.html
{% for farm in farms %}
<div style="top: {{ farm.map_top }}px; left: {{ farm.map_left }}px;">{{ farm.name }}</div>
如何将 map_top 和 map_left 添加到 views.py 中的农场对象? 我试过了
farms[0].map_top=80
setattr(farms[0],'map_top',80)
但它不起作用
我的第二种方法是在views.py中设置
farm_web_data={}
farm_web_data[1]={}
farm_web_data[1]['map_top']=80
但我不知道如何从模板访问这些数组
{% for farm in farms %}
<div style="top: {{ farm_web_data.{{ farm.pk }}.map_top }}px;
不工作
有什么想法吗? 我不想将 map_top 存储在数据库中
【问题讨论】:
-
你是如何计算
map_top和map_left的?对于列表中的第二个农场,两者的价值是多少? -
这将是固定值。例如,我只为第一个农场设置了 map_top,但在真正的 views.py 和模板中都有所有值
-
好的,从以农场 ID 为键的视图中准备字典,将其与上下文一起传递并编写 Custom Template Tag 以获取模板中农场的相应值
标签: python django django-models django-templates