我试图在django模板上调用python视图方法res(),但它没有调用。
这是我的观点
class make_incrementor(object):
def __init__(self, start):
self.count=start
def __call__(self, jump=1):
self.count += jump
return self.count
@property
def res(self):
self.count =0
return self.count
def EditSchemeDefinition(request, scheme_id):
iterator_subtopic = make_incrementor(0)
scheme_recs = scheme.objects.get(id=scheme_id)
view_val = {
'iterator_subtopic': iterator_subtopic,
"scheme_recs": scheme_recs,
}
return render(request, "edit.html", view_val)
我正在尝试递增计数,然后在一个级别之后将其重置为0但是它的重置方法没有从Django模板调用。
这是我的edit.html页面
<td id="subTopic" class="subTopic">
{% for strand in scheme_recs.stand_ids.all %}
{{ iterator_subtopic.res }}
{% for sub_strand in strand.sub_strand_ids.all %}
{% for topic in sub_strand.topic_ids.all %}
{% for subtopic in topic.sub_topic_ids.all %}
<input id="subTopic{{ iterator_subtopic }}" class="len"
value="{{ subtopic.name }}">
<br>
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
</td>
我的{{iterator_subtopic.res}}未获得调用,并且iterator_subtopic的值未再次设置为0。函数及其调用在终端上正常工作,但不能在django模板中呈现。
请纠正我在哪里做错了。 提前谢谢。
答案 0 :(得分:0)
由于您的make_incrementor
课程采用__call__
方法,我相信{{ iterator_subtopic.res }}
将首先调用iterator_subtopic()
,这将返回count
整数。然后,它将尝试访问res
整数的count
属性(不存在),因此它将输出空字符串''
。
答案 1 :(得分:0)
我只是修改我的make_incrementor类方法,如: -
class make_incrementor(object):
count = 0
def __init__(self, start):
self.count = start
def inc(self, jump=1):
self.count += jump
return self.count
def res(self):
self.count = 0
return self.count
def EditSchemeDefinition(request, scheme_id):
iterator_subtopic = make_incrementor(0)
scheme_recs = scheme.objects.get(id=scheme_id)
view_val = {
'iterator_subtopic': iterator_subtopic,
"scheme_recs": scheme_recs,
}
return render(request, "edit.html", view_val)
后来在我的django模板中,我调用了它的方法: -
<td id="subTopic" class="subTopic">
<p hidden value="{{ iterator_subtopic.res }}"></p>
{% for strand in scheme_recs.stand_ids.all %}
{{ iterator_subtopic.res }}
{% for sub_strand in strand.sub_strand_ids.all %}
{% for topic in sub_strand.topic_ids.all %}
{% for subtopic in topic.sub_topic_ids.all %}
<input id="subTopic{{ iterator_subtopic.inc }}" class="len"
value="{{ subtopic.name }}">
<br>
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
完成了。现在我得到了我预期的输出。