【发布时间】:2016-04-13 21:05:02
【问题描述】:
我有一个选择菜单,其中显示了英语外语列表。我想根据当前查看网站的语言以西班牙语或日语显示列表。
我的模板页面上的表单默认呈现 en(英文)。这是它在我的模板页面中的样子:
{{ form.native }}
我的表单通过“this_language”参数知道当前查看网站的语言。我的表单如下所示:
class RegistrationForm(forms.ModelForm):
def __init__(self,*args,**kwargs):
if 'this_language' in kwargs:
this_language = kwargs.pop('this_language')
super(RegistrationForm, self).__init__(*args, **kwargs)
self.fields['native'] = forms.ModelChoiceField(queryset=Language.objects.all().order_by(this_language), empty_label=_('Please select'))
模型如下所示:
class Language(models.Model):
en = models.CharField(max_length=250)
es = models.CharField(max_length=250, null=True)
ja = models.CharField(max_length=250, null=True)
def __unicode__(self):
return self.en
我注意到我可以将模型中的“return self.en”更改为 es 或 js,我得到了想要的结果。
但是否可以在模板页面或 forms.py 中动态执行此操作?
【问题讨论】:
标签: python django django-models django-forms