gpt4 book ai didi

django 如何遍历由通用详细 View 传回的上下文对象?

转载 作者:行者123 更新时间:2023-12-03 18:42:47 25 4
gpt4 key购买 nike

我正在使用通用 DetailView 来显示项目对象。
我可以在模板中以某种方式循环遍历字段还是必须放置每个字段。

url(r'^(?P<slug>[-\w]+)/$', DetailView.as_view(model=Project,
template_name='projects/detail_project.html',slug_field='slug',
context_object_name='project'), name='project_detail'),

我的模板中有这样的东西:
{{ project.title }}
{{ project.created_date }}

等等...

有没有办法做这样的事情?
    <table>
{% for field in project %}
<tr>
<td>{{ field }}</td>
</tr>
{% endfor %}
</table>

我尝试了上面的代码片段并得到了这个错误:
Caught TypeError while rendering: 'Project' object is not iterable

最佳答案

通常最好放置每个字段,但是您只想转储所有字段,您可以执行以下操作:

# models.py
class Project(models.Model):
...

def get_field_values(self):
return [field.value_to_string(self) for field in Project._meta.fields]

那么你可以做
<table>
{% for value in project.get_field_values %}
<tr>
<td>{{ value }}</td>
</tr>
{% endfor %}
</table>

关于django 如何遍历由通用详细 View 传回的上下文对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6693026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com