gpt4 book ai didi

python - 如何翻译动态表单选择

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:55 24 4
gpt4 key购买 nike

我使用相同的表单并更改选择。

所有选项都有翻译。

我需要在表单中指定一些内容吗?

forms.py

class QuestionForm(forms.Form):
selection = forms.ChoiceField(widget=forms.RadioSelect())

views.py

from django.utils.translation import ugettext as _
form = QuestionForm(request.POST)
choices = [(_(i.choice), i.choice) for i in question.choices.all()]
form.fields['selection'].choices = choices

模板

<form method="post">{% csrf_token %}
{{ form.selection }}
<input type="submit" value="Submit" class="btn"/>
</form>

我试过了

{% trans form.selection %}

但出现错误”

'BoundField' object has no attribute 'replace'

最佳答案

(_(i.choice), i.choice) 的顺序错误,您将看不到翻译。这是显示的第二项,因此您需要:(i.choice, _(i.choice))

<小时/>

此外,如果您想要动态表单,则应该使用表单工厂创建动态表单。

创建表单后,请勿使用它的内部结构。

代码中的某处:

def make_question_form_class(question):
choices = [(_(i.choice), i.choice) for i in question.choices.all()]

class _QuestionForm(forms.Form):
selection = forms.ChoiceField(choices = choices, widget=forms.RadioSelect())

return _QuestionForm

您认为:

form_class = make_question_form_class(question)
form = form_class(request.POST)
<小时/>

参见this post by James Bennett himself更多的可能性!

关于python - 如何翻译动态表单选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16088849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com