Как использовать страны Джанго в регистрационной форме?
Я пытаюсь добавить 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)