我正在尝试按字母顺序对翻译的字段名称进行排序。我怎么能修改下面的代码来实现这个目标?目前,此代码翻译详细名称。现在,我想知道如何按字母顺序排序翻译的字段名称。该网站将提供多种语言版本。
models.py
from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _
class User_interest(models.Model):
user = models.OneToOneField(User)
acting = models.BooleanField(verbose_name=_('Acting'),default=False)
aikido = models.BooleanField(verbose_name=_('Aikido'),default=False)
airhockey = models.BooleanField(verbose_name=_('Air Hockey'),default=False)
airsoft = models.BooleanField(verbose_name=_('Airsoft'),default=False)
americanfootball = models.BooleanField(verbose_name=_('American Football'),default=False)
...
...
...
forms.py
class InterestsForm(forms.ModelForm):
class Meta:
model = User_interest
exclude = ['user']
template.html
<ul>
{% for interest in interests %}
<li>
{{ interest }} {{ interest.label }}
</li>
{% endfor %}
</ul>
答案 0 :(得分:1)
不幸的是,我无法直接帮助您解决有关如何对字段进行排序的问题,我希望有人可以。但另外,我想分享一下我的经历:
每当您发现自己想知道如何完成此类任务时,请退后一步,想知道数据建模的改进是否会改善您的情况。
相反,您可以使用Interests
中的新模型User_interest
和many-to-many field替换所有这些字段。这种方式排序是小菜一碟,而且你有动态利益与硬编码。
当在表单中呈现多对多字段时,使用ModelChoiceField
,它将QuerySet作为其第一个可以以任何方式排序的参数。