Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » добавление пункта "не выбрано" в виджет select [RSS Feed]

#1 Май 15, 2014 11:12:25

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

добавление пункта "не выбрано" в виджет select

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

я сделал в шаблоне выпадающий список городов
models.py

class UserProfile(User):
    city = models.CharField(
        'Город',
        max_length=50, 
        default='saer', 
        blank=False,
    )
    @classmethod
    def get_city_list(self):
        result = self.objects.values_list('city', flat=True).distinct() 
        return result

views.py:
@login_required 
def friends_search(request):        
    t = loader.get_template('friends_search.html')
    c = RequestContext(request, {
        'city_list': UserProfile.get_city_list(),
    }, [custom_proc])   
    return HttpResponse(t.render(c))

template.html:
{% extends "page_base.html" %}
{% load thumbnail tags_drummersaransk %}
{% block title %} - Поиск друзей{% endblock %}
{% block content %}
    <section class="section friends_search">
        <form class="left filter" action="{% url 'friends_search' %}" method="POST">
            {% csrf_token %}
            <div class="cell">
                <label class="label lbl_city" for="fld_city">Город</label>
                <select class="fld_city" id="fld_city" name="fld_city">
                    {% for city in city_list %}
                        <option name="{{ city }}" value="{{ city }}">{{ city }}</option>
                    {% endfor %}
                </select>                   
            </div>  
            <div class="cell">
                <input class="submit btn btn-default btn-block" type="submit" name="fld_submit" id="fld_submit" value="Найти" />
            </div>
        </form>
    </section>
{% endblock %}

проблема в том, что в этом списке содержатся только названия городов. но мне нужно чтобы первым номером шёл пункт “город не выбран”

как я понимаю, нужно каким-то способом добавить этот пункт в методе
UserProfile.get_city_list ()
. подскажите пожалуйста как это сделать. или подскажите другой способ решить проблему

Офлайн

#2 Май 15, 2014 11:49:53

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

добавление пункта "не выбрано" в виджет select

zlodiak
чтобы первым номером шёл пункт “город не выбран”
Да бога ради
                <select name="{{ city }}" class="fld_city" id="fld_city" name="fld_city">
                     <option value="">Город не выбран</option>
                    {% for city in city_list %}
                        <option  value="{{ city }}">{{ city }}</option>
                    {% endfor %}
                </select>
Скажите, а с чего вы взяли, что у <option> есть name?



Офлайн

#3 Май 15, 2014 12:42:07

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

добавление пункта "не выбрано" в виджет select

FishHook, спасибо. всё оказалось проще, чем я предполагал) хотя, если создаю форму подобным способом

class PathGloryForm(forms.ModelForm):		
	class Meta:
		model = PathGlory
		fields = (
			'user_id',
			'title', 
			'date', 
			'place', 
			'teaser', 
			'text',
			'path_glory_photo',
		)


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

с атрибутом name это мой косяк, поленился в спецификацию посмотреть. спасибо тоже

Отредактировано zlodiak (Май 15, 2014 12:42:19)

Офлайн

  • Начало
  • » Django
  • » добавление пункта "не выбрано" в виджет select[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version