Форум сайта python.su
При выводе в шаблоне запроса из базы данных возникла проблема.
Нельзя делать отсечение, а мне нужно вывести подстроку из большого текста.
В качестве решения можно было бы создать в классе модели переменную и сохранять в нее это отсечение во время запроса.
Только чтобы в базе не сохранять.
Попробовал тупо:
class MyTable(models.Model):
bigtext=models.CharField()
subtext=this.bigtext[0:30]
Офлайн
А что за БД? У меня кое-что похожее в Postgres'e работает так:
create TRIGGER tsvectorupdate before insert or update on programmes_programm for each row execute procedure tsvector_update_trigger(title_tsv,
'pg_catalog.russian', title);
Офлайн
Nick2009Что значит нельзя? Фильтры slice или truncatewords пробовали?
Нельзя делать отсечение, а мне нужно вывести подстроку из большого текста.
Nick2009А кроме “тупо” чем ещё вы руководствовались, писав такой код? Что такое this и как вы думали это будет работать? Просто интересно.
Попробовал тупо:
LolkaЧто за ужас? Никому это не показывайте больше!
А что за БД? У меня кое-что похожее в Postgres'e работает так:
Офлайн
Nick2009И тут мне показалось, что я чегото не знаю про Django….или про python …subtext=this.bigtext[0:30]
class MyTable(models.Model):
bigtext=models.TextField()
@property
def subtext(self):
return self.bigtext[:30]
Отредактировано (Окт. 7, 2009 22:22:16)
Офлайн
denzОшибок не выдавал, т.к. я забыл перезапустить апачи…Nick2009И тут мне показалось, что я чегото не знаю про Django….или про python …subtext=this.bigtext[0:30]
Что такое `this`?????? И как это не матюкается? Даже я матюкнулся когда этот код увидел.
Может ты просто забыл подключить приложение с этой моделью в settings.INSTALLED_APPS?
Если решать на уровне django сервера, то надо писать както так:Но все дело в том, что если поля реально большие и проблемные, то в плане оптимизации работы с SQL сервером такой метод будет равносильным обращению к первому полю, т.к. изначально все равно будет выдергиваться строка с сервера, а потом с помощью приведенного метода - обрезаться.class MyTable(models.Model):
bigtext=models.TextField()
@property
def subtext(self):
return self.bigtext[:30]
class MyTable(models.Model):
bigtext=models.TextField()
subtext=''
for r in qs:
r.subtext=r.bigtext[:30]
Отредактировано (Окт. 12, 2009 14:22:14)
Офлайн
DaevaornНет.
Фильтры slice или truncatewords пробовали?
Офлайн
Nick2009Так зря. Они для того и есть.
Нет.
Офлайн
DaevaornАга, переделываю. Спасибо!
Так зря. Они для того и есть.
Офлайн