Sergiy_Hanzhela
@Sergiy_Hanzhela
Начинающий разработчик!

Преобразование country_id в название страны?

Всем доброго дня! Подскажите пожалуйста каким образом можно преобразовать country_id обратно в название страны!
Ситуаия такая в html форме поле country образована виджетом где в value находитс country_id есстественно он и пишется в расширенную модель юзера, может есть каканить таблетка для обратного преобразования его в название страны? при выводе обратно в шаблон

<select class="form-control" id="input-payment-country" name="country_id">
                        <option value=""> --- Please Select --- </option>
                        <option value="244">Aaland Islands</option>
                        <option value="1">Afghanistan</option>
                        <option value="2">Albania</option>
                        <option value="3">Algeria</option>


эт кусочек кода! value эт значение id

class CreationFormUser(forms.ModelForm):
    class Meta:
        model = User
        fields = ('email', 'last_name', 'first_name', 'address', 'post_code', 'password', 'country_id', 'phone', 'city')

вот форма
class User(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(_('email address'), unique=True)
    first_name = models.CharField(_('first name'), max_length=30, blank=True)
    last_name = models.CharField(_('last name'), max_length=30, blank=True)
    phone = models.CharField(_('telephone'), max_length=30, blank=True)
    country_id = models.CharField(_('country'), max_length=30, blank=True)
    city = models.CharField(_('city'), max_length=50, blank=True, default='')
    address = models.CharField(_('address'), max_length=30, blank=True)
    post_code = models.CharField(_('post code'), max_length=30, blank=True)
    date_joined = models.DateTimeField(_('date joined'), auto_now_add=True)
    is_active = models.BooleanField(_('active'), default=True)
    is_admin = models.BooleanField(_('superuser'), default=False)
    avatar = models.ImageField(upload_to='avatars/', null=True, blank=True)

вот моделька Юзвера

<script type="text/javascript">
    var header = function(){
        var country_id = {{ user.country_id }};
        var country = $('#input-payment-country option[value='+ country_id +']').html();
        var user = '{{ user.get_full_name }}';
        var address = '{{ user.get_full_address }}';
        $('#payment-existing select option[value='+4+']').text(user +', '+country +', '+ address);
 };
$(document).ready(header);

вот такой костылёк:)
  • Вопрос задан
  • 526 просмотров
Решения вопроса 1
sim3x
@sim3x
# country_id = models.CharField(_('country'), max_length=30, blank=True)
country = models.ForeignKey('Country', blank=True, null=True)


class Country(Model):
    name = models.CharField(_('country'), max_length=30)


И из модели Country ты и будешь делать джанговскую форму, валидировать и тд
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы