Найти - Пользователи
Полная версия: ModelChoiceField. В браузере выдает <название объекта> object
Начало » Django » ModelChoiceField. В браузере выдает <название объекта> object
1
Serg009
Здравствуйте.

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

 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

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

На всякий случай, я использую
Версия python: 3.5.2
Версия django: 1.10.5
FishHook
А как форму рендерите в шаблоне?
Serg009
В шаблоне:

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

Поэтому, если кто знает, подскажите, в чем конфликт, почему во внутреннем django сервере все нормально, а при использование apache2 происходит такая ошибка, которую я описал выше?
FishHook
Serg009
Такого просто не может быть, потому что весь код выполняется не доходя до апача. У вас под апачем либо работает другая версия питона, либо другая версия джанги, либо другая версия вашего кода. Встроенный сервер сам умеет перезапускать приложение, когда вы изменяете код. Апач этого, конечно, не делает. После манипуляций с кодом его нужно рестартовать вручную. Может быть вы просто не делаете необходимых операций и не видите ваших изменений потому, что апач их не применил?
Serg009
Я вчера до самого вечера обновлял и никаких изменений не было, но сегодня утром, я снова проверил через apache2, этой ошибки уже не было.
В общем получается, что это я что-то неправильно сделал (вроде бы по Ctrl+F5 в браузере должно обнавляться полностью), но данные не обновлялись.
Я благодарю за ответы.
FishHook
Serg009
Да при чем здесь браузер то?
Вы пишите серверный код. Код выполняется на сервере. Сервером управляет апач. Где здесь браузер?
Ваш код на питоне и браузер не имеют ничего общего. Надо перезагружать сам апач, а не браузер. Девелоперский сервер не надо, он сам это делает.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB