2010-11-02 2 views
0

Мое приложение имеет форму, которая заполняется и отправляется пользователем для отправки записи в базу данных. У меня есть 3 формы.ModelChoiceFields основывается на моделях. ForeignKey. Я устанавливаю их в свои значения по моему мнению, и 2 из них работают по назначению. Однако в третьем раскрывающемся списке используется метазначение 2 слова как отображение, имя и фамилия. Я не могу понять, как изначально заполнить форму, вызывая 2 слова.Django-установка начального состояния ForeignKey/ModelChoiceField

#in views.py
form = EmployeeForm(initial={'facility':'None' # this works
'supervisor':'_ None'} # does not work

Для объекта, никто не является запись строки в БД, а не None "значение" Для руководителя, _ Нет это первая/последняя запись имени в БД

#part of class Facility
def __ unicode__ (self): #had to added spaces for _ _ to show here
return self.fac_name

#part of class Supervisor
def __ unicode__ (self): #same syntax note as above
return u'%s %s' % (self.first_name, self.last_name)

Сбрасываемые населенные пункты заполняются и отправляются правильно - единственная проблема, с которой я столкнулась, заключается в установке начального значения для супервизора. Как я могу вызвать начальное значение с двумя именами?

ответ

0

Вам нужно будет пройти экземпляр с правильным первым/последним именем в качестве начального значения:

default_supervisor = Supervisor.objects.get(first_name='_', last_name='None') 
form = EmployeeForm(inital={'supervisior': default_supervisor}) 
+0

Спасибо! Зная это сейчас, я могу просто попытаться использовать имена 1 слова для выпадающих форм foreignkey, меньше кода! –

+0

Я не знаю, что вы делаете, но обычно более рекомендуется использовать 'None' вместо существующей записи db! –

+0

Ну, я вводил записи «none» (string value) db, потому что в то время, когда поля были необходимы, хотя (я думал), что они не должны быть. Ну, как я узнал, SQLite не может обновлять атрибуты столбцов, поэтому они требовались из-за моих исходных параметров модели. Fortunatly, так как у меня не было реальных данных, я только что перестроил db для новой модели, и он исправил многие другие проблемы, которые у меня были с полями, которые я установил в null = blank = true, но все еще виноваты когда нет. Урок выучен. –

Смежные вопросы