Python 在django模板中访问字典值
请帮助我在django模板中显示dictionary的值。我试图通过谷歌找到答案,但没有找到解决方案 下面是模型Python 在django模板中访问字典值,python,django,dictionary,django-templates,Python,Django,Dictionary,Django Templates,请帮助我在django模板中显示dictionary的值。我试图通过谷歌找到答案,但没有找到解决方案 下面是模型 class Ride(models.Model): type = models.BooleanField(default=False) add_source = models.ForeignKey(Address, related_name='source') add_destination = models.ForeignKey(Address, rela
class Ride(models.Model):
type = models.BooleanField(default=False)
add_source = models.ForeignKey(Address, related_name='source')
add_destination = models.ForeignKey(Address, related_name='destination')
ride_comment = models.TextField(null=True,max_length=140,blank=True)
def __unicode__(self):
return self.ride_comment
class Driver(models.Model):
ride_id = models.ForeignKey(Ride)
user_id = models.ForeignKey(User)
drv_carseats = models.SmallIntegerField(null=True,blank=False)
def __unicode__(self):
return self.user_id.username
看法
这是我的模板代码
{% for result in result_list %}
{% if result %}
<a href="/rides/ridedetails/{{ result.pk }}">{{ userList[result.pk] }}</a>
<em>{{ result.add_source }}</em>
<em>{{ result.add_destination }}</em>
<em>{{ result.ride_comment }}</em>
{% endif %}
{% endfor %}
{%for result in result\ u list%}
{%if结果%}
{{result.add_source}}
{{result.add_destination}
{{result.ride_comment}
{%endif%}
{%endfor%}
我得到以下错误
TemplateSyntaxError位于/rides/search/
无法分析“userList[result.pk]”中的其余部分:“[result.pk]”
您应该为此编写django自定义筛选器 在应用程序中创建文件名get_dict_val.py
project
-app
-templatetags
__init__.py
get_dict_val.py
现在进入“获取目录”页
@register.filter
def get_item(dictionary, key):
return dictionary.get(key)
模板中
将此添加为第一行写入
{% load get_dict_val %}
现在替换模板中的代码
<a href="/rides/ridedetails/{{ result.pk }}">{{ userList|get_item:result.pk }}</a>
您不需要创建字典就可以在模板级别访问驱动程序,因为
Driver
model具有Ride
model的外键:
{% for result in result_list %}
{% if result %}
{% with result.driver_set.all as drivers %}
{% for driver in drivers %}
<a href="/rides/ridedetails/{{ result.pk }}">{{ driver.user_id }}</a>
{% endfor %}
{% endwith %}
<em>{{ result.add_source }}</em>
<em>{{ result.add_destination }}</em>
<em>{{ result.ride_comment }}</em>
{% endif %}
{% endfor %}
然后你可以做:
ride = Ride.objects.get(id='some_id')
drivers = ride.drivers.all()
ride_id = models.ForeignKey(Ride, related_name='drivers')
ride = Ride.objects.get(id='some_id')
drivers = ride.drivers.all()