0

几个小时后,我仍然没有弄清楚在这种情况下如何做/思考,我一开始认为这将是最简单的任务..

有一个 html 模板,有七个文本框,每天一个。文本框的名称是当天的名称。我在其中写下文字,然后按提交。

Django 得到它,并将所有内容放入数据库中。一切都很好。

当我再次加载模板时,我希望文本框填充数据库中的数据。但我不知道怎么做,我需要帮助!

我做的第一件事是进行查询并执行render_to_response,但随后我将每个字段渲染了七次,因为它在每个文本框上渲染查询中的所有内容。

如果我的 html 模板中只有一个文本框,则 render_to_response 可以正常工作。但是,当我更改模板中的任何数据并按提交时,所有文本框都具有相同的名称,并且由于 django 无法分隔所有 7 天。

{% for activity in activity_data %}     
        Activity  <input type="text" class="textbox" value="{{activity.excercise}}" name="monday" size="12" id="inputField1">  <p>&nbsp;</p>
{% endfor %} 

我不知道这有多清楚,如果不让我知道,我会尝试解释更多。欢迎任何建议!

4

2 回答 2

0

这很难看,但您可以使用{%cycle%}标记来迭代日期名称。

{% for activity in activity_data %}     

 {% cycle 'monday' 'tuesday' 'wednesday' 'thursday' 'friday' 'saturday' 'sunday' as day  silent %}
  Activity  <input type="text" class="textbox" value="{{activity.excercise}}" 
                name="{{day}}" size="12" id="inputField1">  <p>&nbsp;</p>
{% endfor %}

更好的方法是,值name来自activity对象,这样你就不必操作 for 循环,你可以做一些事情name="{{activity.day}}"

于 2013-02-05T09:42:10.723 回答
0

谢谢!我解决了它作为您的建议,用 ID 而不是当天的真实姓名填充 db 中的名称。效果很好。

于 2013-02-08T22:35:32.170 回答