从 Django 模型返回多个字段
Posted
技术标签:
【中文标题】从 Django 模型返回多个字段【英文标题】:Returning more than one field from Django model 【发布时间】:2014-01-03 22:46:23 【问题描述】:如何从 Django 模型声明中返回多个字段?
例如:我已经定义了:
class C_I(models.Model):
c_id = models.CharField('c_id', max_length=12)
name = models.CharField('name', max_length=100)
def __str__(self):
return '%s' % (self.name)
当在 views.py 函数中调用以返回时,我可以使用它
c_index
% for c in c_index %
<div class='c-index-item' c-id=''>
<p> c.name </p>
</div>
% endfor %
来自模板。这在我的views.py中被调用,如下所示:
c_index = C_I.objects.all()
t = get_template('index.html')
c = Context('c_index': c_index)
html = t.render(c)
我如何也包括上面模型中定义的 c_id,以便我可以在我的模板中包括 c.name 和 c.c_id?当我删除 str 方法时,我似乎得到了所有结果,但是,它只返回模板中的空白条目,并且不允许我引用对象的各个组件。
【问题讨论】:
我试过 return '%s %s' % (self.name, self.c_id) 并且还 return '%s, %s' % (self.name, self.c_id)跨度> 您正在将Calendar
对象列表从视图函数传递给模板以进行渲染,因此对于个别实例,您应该能够访问 Calendar
模型定义的任何属性(无需定义__str__
方法)。尝试将<p>
标记的内容更改为 c.c_id , c.name
。访问视图时是否会导致任何错误?
它不会导致错误,但它是空白的。此外,当我打印如上定义的 c_index 时,我只得到名称和 c_id,但如果我注释掉 str 方法,我得到一个日历项数组
将c_index
传递给模板的代码是什么?即,您能否将负责渲染模板的视图函数的代码添加到您的帖子中?
我已将其添加到问题正文中
【参考方案1】:
你所拥有的一切都很好。您的模板应该是:
% for c in c_index %
<div class='c-index-item' c-id=' c.c_id '>
<p> c.name </p>
</div>
% endfor %
【讨论】:
以上是关于从 Django 模型返回多个字段的主要内容,如果未能解决你的问题,请参考以下文章