Подскажите пожалуйста, чё я делаю не так?
Есть вот такая моделька:
class Organization(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE)
name = models.CharField(_(u'name'),
max_length=50,
blank=True,
null=True,
default='',
unique=False)
тут еще кучка полей поскипана
class Meta:
db_table = 'organization'
ordering = ('name',)
abstract = False
def __unicode__(self):
return self.name
в шаблоне я могу указать прямо вот так:
input type="text" value="{{ user.organization.name }}" name="org_name" maxlength="50"
оно работает и честно показывает на странице поле с именем организации внутри, ровно до тех пор, пока существует запись в базе mysql.
Удаляю запись из таблицы organization, т.е. для текущего юзверя записей нет и на странице в поле name начинает торчать NULL.
Ладно, хуй с ним, думал поймаю это в модельке чем то вроде
@property
def get_name(self):
logger.debug('name: ' + self.name)
if self.name:
return self.name
else:
return ''
ну или как то так с чеком на NULL, делаю в шаблоне
input type="text" value="{{ user.organization.get_name }}" name="org_name" maxlength="50"
и офигиваю окончательно, всё тот же NULL, да еще и в консоли НЕТ записи от логгера.
Я, сцуко, напуган и потерян :)
Конечно можно по-дефолту, при создании юзера пихать пустую запись в табличку Organization с ключом юзера и '' вместо name как default, но мне это не надо. Таблица может быть пустой.