将变量值分配给模板中的表单域
Posted
技术标签:
【中文标题】将变量值分配给模板中的表单域【英文标题】:Assign variable value to a form field in a template 【发布时间】:2015-07-31 07:04:23 【问题描述】:我希望将视图函数one_label
中的变量word
中的值分配给模板中的表单字段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>
【问题讨论】:
word
是来自视图上下文还是其他什么?
它的值来自一个单独的python函数,在视图函数one_label中被调用
【参考方案1】:
首先,您的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 %
标签,尽管它似乎与您的特定问题无关。
【讨论】:
以上是关于将变量值分配给模板中的表单域的主要内容,如果未能解决你的问题,请参考以下文章
尝试将变量值分配给结构元素。起初变量有正确的值,但结构元素有垃圾值
将变量值传递给 paypal API - first_name 和 last_name