Уведомления

Группа в Telegram: @pythonsu

#1 Май 16, 2014 11:03:07

zlodiak
От: Россия
Зарегистрирован: 2014-01-19
Сообщения: 159
Репутация: +  0  -
Профиль   Адрес электронной почты  

как вывести в форме связанное поле?

помогите пожалуйста решить проблему.

есть таблица с данными о пользователе. в таблице есть связанное поле ‘gender’. нужно вывести форму с выпадающим списком для выбора пола.

models.py:

class Gender(models.Model):		
	gender = models.CharField(
		max_length=10, 
		blank=False,
	)	
class UserProfile(User):
	nickname = models.CharField(
		'Отображаемое имя',
		max_length=30, 
		blank=False,
	)
	gender = models.ForeignKey(
		Gender,
		#default=1,
		null=True,
	)

views.py:
def personal_data_page(request):
	entry_user_profile = UserProfile.objects.get(user_ptr_id__exact=request.user.id)	
	form = PersonalDataForm(instance=entry_user_profile)	
	
	t = loader.get_template('personal_data_page.html')
	c = RequestContext(request, {
		'form': form,
	})
	return HttpResponse(t.render(c)) 

forms.py:
class PersonalDataForm(forms.ModelForm):	
	class Meta:
		model = UserProfile
		fields = (
			'nickname', 
			'gender',  
		)

personal_data_page.html:
<div class="cell">
	<label class="label">{{ form.gender.label }}</label>
	
	{{ form.gender }}
	
	{{ form.gender.errors }}
</div>

проблема в том, что строка выводит
1
. а мне нужно чтобы выводилось что-то типа:
<select>
	<option value="1">Male</option>
	<option value="2">Female</option>
</select>

я пробовал выводить так
 {{ form.gender.gender }}
, но в этом случае вообще ничего не выводится

Офлайн

#2 Май 16, 2014 12:38:56

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

как вывести в форме связанное поле?

Точно не уверен, но попробуйте добавить для модели Gender метод __unicode__ который будет возвращать вам нужное описание.

def __unicode__(self):
    return self.gender

Отредактировано GreyZmeem (Май 16, 2014 12:39:10)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version