如何在注册表中使用 django 国家?

vog*_*ger 3 django django-countries

我正在尝试在将与 django-allauth 一起使用的注册表中添加 django-countries。按照说明https://github.com/SmileyChris/django-countries我创建了一个模型

class UserProfile(models.Model):
    # Other things
    country = CountryField()
Run Code Online (Sandbox Code Playgroud)

还有一个表格

从 django_countries.data 导入国家

class SignupForm(forms.Form):
    # Other stuff
    country = forms.ChoiceField(choices=COUNTRIES, required=True)

    def signup(self, request, user):
        # Other Stuff
        user.userprofile.country = self.cleaned_data['country']
Run Code Online (Sandbox Code Playgroud)

但是当我访问 /accounts/signup/ 页面时,我收到了表格,但对于我选择的国家/地区

<p><label for="id_country">Country:</label> <select id="id_country" name="country">
<option value="G">Q</option>
<option value="I">D</option>
<option value="K">Y</option>
 ...
Run Code Online (Sandbox Code Playgroud)

代替国家代码和国家名称

Raj*_*hik 5

您应该像这样设置选择:

from django_countries import countries
COUNTRY_CHOICES = tuple(countries)

class SignupForm(forms.Form):
    country = forms.ChoiceField(choices=COUNTRY_CHOICES, required=True)
Run Code Online (Sandbox Code Playgroud)