2011-02-18 2 views
24

Я извлек объект из своей базы данных. Этот объект имеет поле внешнего ключа с атрибутом blank = True. Как я могу проверить, действительно ли он оставлен пустым?Django проверить, не пустое поле?

Спасибо за помощь!

ответ

22

blank=True просто сообщает администратору, что поле может быть пустым.

Если вы не установили null=True, ваша база данных должна жаловаться, если вы попытаетесь ввести пустое значение.

Если ваше поле внешнего ключа может принимать нулевые значения, оно будет возвращать None в поле null, поэтому, чтобы проверить, было ли оно «пустым», вы можете просто проверить, является ли поле None.

>>> obj.foreignkeyfield is None 
True 


if not obj.foreignkeyfield: 
    print "This field was left blank" 
+0

В чем разница между 'is None 'и' if not'? – hobbes3

+5

@ hobbes3, В случае поля FK это не имеет большого значения. В качестве примера я использовал выражение для вывода консоли. 'is None' является только True, если' val == None', а 'if not' просто проверяет' bool (val) == False'. 'bool (0)', 'bool ('')' все оцениваются как False. –

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