Как использовать страны Джанго в регистрационной форме?

Я пытаюсь добавить django-страны в регистрационную форму, которая будет использоваться с django-allauth. Согласно инструкции https://github.com/SmileyChris/django-countries я создал модель

class UserProfile(models.Model):
    # Other things
    country = CountryField()

И форма

из 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']

Но когда я захожу на страницу / account / 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>
 ...

Вместо кода страны и названия страны

1 ответ

Решение

Вы должны установить такой выбор:

from django_countries import countries
COUNTRY_CHOICES = tuple(countries)

class SignupForm(forms.Form):
    country = forms.ChoiceField(choices=COUNTRY_CHOICES, required=True)
Другие вопросы по тегам