Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » ModelChoiceField. В браузере выдает <название объекта> object [RSS Feed]

#1 Янв. 24, 2017 16:42:42

Serg009
Зарегистрирован: 2017-01-16
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

ModelChoiceField. В браузере выдает <название объекта> object

Здравствуйте.

В классе формы для одного из полей я задаю такую строку:

 importanceaccount = forms.ModelChoiceField(queryset=ImportanceAccountsModel.objects.order_by('-id').all(), label='Важность', empty_label=None)

Также в модели есть класс:

 class ImportanceAccountsModel(models.Model):
    class Meta:
        db_table = 'importance_accounts'
        ordering = ['name']
        verbose_name = 'уровень важности'
        verbose_name_plural = 'уровень важности'
    name = models.CharField(max_length=40, unique=True, db_index=True)
    def __str__(self):
        return self.name

Но почему-то при выводе элементов формы в поле нахождения выводимого содержимого select для всех пунктов выдается, вместо названия
ImportanceAccountsModel object

Если кто знает в чем проблема, подскажите пожалуйста.

Офлайн

#2 Янв. 24, 2017 16:50:47

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

ModelChoiceField. В браузере выдает <название объекта> object

    
    def __unicode__(self):
        return self.name



Офлайн

#3 Янв. 24, 2017 16:55:01

Serg009
Зарегистрирован: 2017-01-16
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

ModelChoiceField. В браузере выдает <название объекта> object

 def __unicode__(self):
    return self.name
Такой вариант я тоже делал, ничего не меняется.

На всякий случай, я использую
Версия python: 3.5.2
Версия django: 1.10.5

Офлайн

#4 Янв. 24, 2017 17:54:49

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

ModelChoiceField. В браузере выдает <название объекта> object

А как форму рендерите в шаблоне?



Офлайн

#5 Янв. 24, 2017 18:04:09

Serg009
Зарегистрирован: 2017-01-16
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

ModelChoiceField. В браузере выдает <название объекта> object

В шаблоне:

 <form action="" method="post">
    {% csrf_token %}
    ....
    <div class="form-group">
        <div class="row">
            <label for="{{ form.importanceaccount.id_for_label }}" class="col-sm-2 control-label text-right">{{ form.importanceaccount.label }}</label>
            <div class="col-sm-3">{{ form.importanceaccount }}</div>
        </div>
    </div>
    ....    
</form>

Отредактировано Serg009 (Янв. 24, 2017 18:04:33)

Офлайн

#6 Янв. 24, 2017 19:14:34

Serg009
Зарегистрирован: 2017-01-16
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

ModelChoiceField. В браузере выдает <название объекта> object

Я еще в самом начале чтобы то что я делаю можно в браузере смотреть через apache2, а не только через manage.py runserver.
Сейчас (надо было конечно раньше) решил проверить, как это выглядит используя
manage.py runserver
И оказалось, что через встроенный в django сервер выводится все как надо, а вот почему то через сервер apache2 получается такая ошибка, о которой я здесь написал.

Поэтому, если кто знает, подскажите, в чем конфликт, почему во внутреннем django сервере все нормально, а при использование apache2 происходит такая ошибка, которую я описал выше?

Офлайн

#7 Янв. 25, 2017 05:52:21

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

ModelChoiceField. В браузере выдает <название объекта> object

Serg009
Такого просто не может быть, потому что весь код выполняется не доходя до апача. У вас под апачем либо работает другая версия питона, либо другая версия джанги, либо другая версия вашего кода. Встроенный сервер сам умеет перезапускать приложение, когда вы изменяете код. Апач этого, конечно, не делает. После манипуляций с кодом его нужно рестартовать вручную. Может быть вы просто не делаете необходимых операций и не видите ваших изменений потому, что апач их не применил?



Офлайн

#8 Янв. 25, 2017 07:58:07

Serg009
Зарегистрирован: 2017-01-16
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

ModelChoiceField. В браузере выдает <название объекта> object

Я вчера до самого вечера обновлял и никаких изменений не было, но сегодня утром, я снова проверил через apache2, этой ошибки уже не было.
В общем получается, что это я что-то неправильно сделал (вроде бы по Ctrl+F5 в браузере должно обнавляться полностью), но данные не обновлялись.
Я благодарю за ответы.

Офлайн

#9 Янв. 25, 2017 08:31:19

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

ModelChoiceField. В браузере выдает <название объекта> object

Serg009
Да при чем здесь браузер то?
Вы пишите серверный код. Код выполняется на сервере. Сервером управляет апач. Где здесь браузер?
Ваш код на питоне и браузер не имеют ничего общего. Надо перезагружать сам апач, а не браузер. Девелоперский сервер не надо, он сам это делает.



Офлайн

  • Начало
  • » Django
  • » ModelChoiceField. В браузере выдает <название объекта> object[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version