我希望将视图函数word
中的变量one_label
的值分配给模板中的表单字段label
。我用javascript看过一些解决方案,但我不确定如何在模板中使用表单字段?
<script type="text/javascript">
var myVar = "{{someDjangoVariable}}"
</script>
在模型中
class Labels(models.Model):
label = models.CharField()
表格
class LabelForm(forms.Form):
label = forms.CharField(required = False)
视图中的
def one_label(request, postID):
one_label = Labels.objects.get(id=postID
if request.method =='POST':
form = LabelForm(request.POST)
if form.is_valid():
word = "something"
else:
form = LabelForm()
c = {"form"=form, "one_label"=one_label, "word"=word }
c.update(csrf(request))
render(response,'mytemplate.html', c)
模板中的
<form action="" method="post">{% csrf_token %}
{{ form.as_p}}
# assign value in var "word" in views to form field "label"
# something like {{ form.label}}:{{ word}}
</form>
答案 0 :(得分:2)
首先,至少在views.py
中存在语法错误,或者这是我完全不知道的语法。 Context是一个Python字典,可以声明为:
c = {'form': form, 'one_label': one_label, 'word': word}
我强烈建议您掌握一个好的IDE,它将非常有助于您使用语法。
关于表单呈现,我建议您通过将{{ form }}
替换为以下内容来扩展表单字段呈现:
{{ form.non_field_errors }}
<div class="fieldWrapper">
{{ form.label.errors }}
<label for="{{ form.label.id_for_label }}">{{ word }}</label>
{{ form.label }}
</div>
另见Django documentation: Rendering fields manually
关于在模板中指定值,您可以使用{% with %}
标记,尽管对于您的特定问题我似乎无关紧要。