首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django模板标签中formset和formset.forms的区别

django模板标签中formset和formset.forms的区别
EN

Stack Overflow用户
提问于 2017-04-19 18:49:13
回答 1查看 678关注 0票数 2

我试图在模板上的表单集中遍历表单。我已经看到了两种不同的方法,这似乎对我使用的代码没有什么影响。

代码语言:javascript
复制
{{ formset.management_form }}
    {% for form in formset %}
        {{ form }}
        {% endfor %}

还有..。

代码语言:javascript
复制
{{ formset.management_form }}
    {% for form in formset.forms %}
        {{ form }}
        {% endfor %}

这有什么区别吗?为什么要把.forms放在最后?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-19 18:56:28

根据BaseFormset类的来源:

代码语言:javascript
复制
def __iter__(self):
    """Yields the forms in the order they should be rendered"""
    return iter(self.forms)

@cached_property
def forms(self):
    """
    Instantiate forms at first property access.
    """
    # DoS protection is included in total_form_count()
    forms = [self._construct_form(i, **self.get_form_kwargs(i))
             for i in range(self.total_form_count())]
    return forms

两种方法(for form in formsetfor form in formset.forms)都是相同的。

您看,用于for循环的for每次都会产生self.forms。另一方面,for form in formset.forms迭代相同的东西,self.forms

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43503823

复制
相关文章

相似问题

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