我正在编写一个django模板Configuration_Detail.html
,它在相关的网址上正确呈现。但是,它不会从视图类中获取任何变量。我有一个非常相似的模板Configuration_List.html
虽然工作正常,但ListView
不是DetailView
。
Configuration_Detail.html:
{% extends "base.html" %}
{% load i18n %}
{% block title %}{% trans 'MySite Database' %}{% endblock %}
{% block branding %}
<h1 id="site-name">{% trans 'MySite Database: Current Instrumentation Configuration' %}</h1>
{% endblock %}
{% block content %}
Here is some text {{name}} with a variable in the middle.
{% endblock %}
页面呈现标题栏正常,但内容块变为“这是一些中间有变量的文本”。
我认为它应该从这里获取变量{{ name }}
。
views.py:
class ConfigurationDetail(DetailView):
model = Configuration
def getname(self):
name = 'debug'
return name
但它不...... 任何关于如何解决这个问题的建议都将非常感激。
编辑添加: Models.py - 配置:
class Configuration(models.Model):
title = models.CharField(max_length=100,unique=True,blank=False)
author = models.ForeignKey(User)
created = models.DateField("date created",auto_now_add=True)
modified = models.DateField("date modified",auto_now=True)
description = models.CharField(max_length=512)
drawing = models.ForeignKey(Drawing,blank=True,null=True)
instruments = models.ManyToManyField(Instrument)
def __unicode__(self):
return self.title
get_context_data()
方法正在使用ctx['author'] = Configuration.author
答案 0 :(得分:0)
对于DetailView
,在上下文中添加object
变量,该变量指向要为其呈现视图的数据库对象。所以在你的模板中你可以这样做:
{% block content %}
Here is some text {{ object.author.get_full_name }}
with a variable in the middle.
{% endblock %}
get_full_name
方法来自User对象。
答案 1 :(得分:0)
如果我理解正确,你需要从模板中访问模型属性,但是这样就足以在不修改上下文数据的情况下进行{{ configuration.author }}
!
DetailView
将所选模型置于上下文中,可通过点表示法访问。