0

我正在编写一个 django 模板Configuration_Detail.html,它可以在相关的 url 上正确呈现。但是,它不会从视图类中获取任何变量。我有一个非常相似的模板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 }}从这里获取变量。

视图.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

4

2 回答 2

1

对于DetailView,在上下文中添加了一个object变量,该变量指向正在为其呈现视图的数据库对象。因此,在您的模板中,您可以执行以下操作:

{% block content %}
   Here is some text {{ object.author.get_full_name }}
   with a variable in the middle.
{% endblock %}

get_full_name方法来自用户对象。

于 2013-08-05T10:30:35.457 回答
0

如果我理解正确,您需要从模板中访问模型属性,但这足以在{{ configuration.author }}不修改上下文数据的情况下完成!

DetailView所选模型置于上下文中,可通过点符号访问。

于 2013-08-05T13:40:24.803 回答