У меня есть модель, в которой одно поле часто является пустой строкой. Есть ли способ вернуть (например,) строку «default» вместо этой пустой строки для запросов на эту модель?вернуть значение по умолчанию для пустого поля в модели django
class MyModel(models.Model):
...
afield = models.CharField(...) # many rows set afield to ''
Когда я выполнить запрос
o = MyModel.objects.all()
vars(o[0])
{...
'afield': '' # afield is empty
...}
Я предпочел бы видеть
vars(o[0])
{...
'afield': 'default'
...}
Есть ли способ сделать это? Есть ли лучший способ реализовать это, чем внутри модели?
Примечания:
- Я не хочу, чтобы сохранить строку 'по умолчанию'
- this answer изменяет базу данных, я хочу, чтобы избежать этого
почему бы не сохранить значение? Если вы действительно этого не хотите, подумайте о создании функции доступа или фильтра шаблонов. Ответ все зависит от того, как вы используете данные; так что, возможно, пример того, как вы будете использовать 'MyModel.objects.all()' после извлечения его, поможет. –
Мои пользователи ожидают увидеть «по умолчанию», когда веб-страница заполняется этим полем. –