我有一个类似
的模型class Document(models.Model):
comment = models.TextField(null=True,blank=True)
upload_date = models.DateTimeField(blank=False)
文档对象在模板中列为
{% for doc in doc_list %}
{{ doc.comment }}
{{ doc.upload_date }}
{% endfor %}
但是,我想动态地找到doc
的属性
{{ doc."comment" }}
或
{{ doc|getField:"comment" }}
我该怎么做?
由于
答案 0 :(得分:2)
我假设您的意思是要使用另一个变量来访问模型上的字段,而您当时并不知道该变量。因此,您可能会将some_var
传递到模板中,这是您要显示的模型中的字段,例如comment或upload_date。
您可以构建template tag来执行此操作:
@register.simple_tag
def get_model_attr(instance, key):
return getattr(instance, key)
现在,您可以在模板中执行以下操作:
{% for doc in doc_list %}
{% get_model_attr doc "comment" %}
{% get_model_attr doc some_var %}
{% endfor %}