django - 如何使用 UserCreationForm 类在用户注册页面使用 python-TZ 添加时区下拉列表

标签 django django-forms django-admin

我想在用户注册页面时使用 PYtZ 包添加一个显示公共(public)时区的下拉列表。要注册用户,我正在使用 UserCreationForm 类。代码如下:

class UserRegisterForm(UserCreationForm):
    email2 = forms.EmailField(label=_("E-mail"))

    def clean_email2(self):
        email2 = self.cleaned_data['email2']
        try:
            user = User.objects.get(email=email2)
        except User.DoesNotExist:
            return email2
        raise forms.ValidationError(_("Account with this e-mail address already exists."))

    def save(self, commit=True):
        user = super(UserRegisterForm, self).save(commit=False)
        user.email = self.cleaned_data["email2"]
        user.is_active = False
        if commit:
            user.save()
        return user

我使用以下命令获取所有常见时区的列表:

>>> from pytz import timezone
>>> import pytz
>>> print(pytz.common_timezones)

它打印: http://pastebin.com/RHdie16M

我也知道选择字段,但使用它不是一个好主意。我该怎么办?

最佳答案

您可以这样使用选择字段:

timezone = forms.ChoiceField(choices=[(x, x) for x in pytz.common_timezones])

关于django - 如何使用 UserCreationForm 类在用户注册页面使用 python-TZ 添加时区下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10578440/

相关文章:

python - 在 python 文件中运行 Django 项目时出错

python - Django 为模型表单返回两个单独的 __str__

Django 管理员 : how to display fields from two different models in same view?

django - Herokucollectstatic 在部署期间未运行

django-filebrowser 无法访问并抛出 404

django - 如何再次将 templatetag 的返回值插入到 {% if - 中

node.js 中的 Django 密码

python - 如何在Django中使用LIKE语句执行mysql查询

django - Django 中非常独立的数据库中的 "Foreign Keys"

python - 将 CSS 类添加到 Django-Autocomplete-Light ModelSelect2 容器/选择