首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DetailView和模板

DetailView和模板
EN

Stack Overflow用户
提问于 2016-06-25 09:13:38
回答 1查看 1.2K关注 0票数 0

Django 1.9.7

你能帮我回答关于DetailView的三个问题吗?

  1. 为什么DetailView不将表单放入上下文中,而CreateView将表单放入上下文中?我的意思是,编写模板非常麻烦,每个字段都是单独显示的,比如object.headline或object.content。如果是CreateView,我们只需将{ form.as_p }放入模板中。方便多了。所以,一定有一些逻辑背后的场景,我无法感觉到,因为缺乏经验。
  2. 是否有第三方应用程序可以为DetailView使用模板标记?或者其他一些东西来自动选择要在模板中显示的字段。
  3. 还是我应该自己在get_context_data中输入一个表单?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-25 09:38:47

DetailView不是用于编辑的。为此目的使用UpdateView

如果要在每个字段上以相同的格式循环显示它们,则必须将字段名作为列表在上下文中传递,然后在此列表上循环:

代码语言:javascript
复制
{% for field_name in field_names %}
  <tr>
    <th>{% get_field_label object field_name %}</th>
    <td>{% get_field_value object field_name %}</td>
  </tr>
{% endfor %}

并创建自定义模板标记:

代码语言:javascript
复制
@register.simple_tag
def get_field_label(obj, name):
    return obj._meta.get_field(name).verbose_name

@register.simple_tag
def get_field_value(obj, name):
    return getattr(obj, value)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38026845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档