
Serge
30.03.2017
18:52:32
А еще ты можешь в другой апп создать шаблоны другого апп

Senpos
30.03.2017
18:53:08

Serge
30.03.2017
18:53:12
Шаблоны правильнее всего хранить в папке templates в корне директории где manage.py
Причем со всех приложений проекта

Google

Serge
30.03.2017
18:54:34

Senpos
30.03.2017
18:54:57
|manage.py
|templates
|---app1
|-------template1
|-------template2
|---app1
|-------template1
|-------template2
получается что-то такое в итоге должно быть?

Serge
30.03.2017
18:55:09
Да вполне

Senpos
30.03.2017
18:55:34
Спасибо ?

Serge
30.03.2017
18:55:36
В корне templates можно хранить всякие base.html

Denis
30.03.2017
19:13:59
Но также можно и в глобальную папку кидать
что как бы правильней

Serge
30.03.2017
19:14:35
Нет конечно, я в templates создаю папку admin, а там правлю шаблончики админки
зачем лишнее приложение

.
30.03.2017
19:19:35
Гайс, еще глупый вопрос закину насчет sqlalchemy. Вот я законнектился к бд, у меня в бд уже есть таблицы, чтобы к ним обращаться, мне все равно нужно будет их где-то описать в питоновских классах, а если нет, то просто обращаться по имени таблицы?

amureki
30.03.2017
19:26:02

Google

Senpos
30.03.2017
20:02:27
@mr_rown А не подскажете, как для структуры templates, что выше обсуждали, правильно задать путь (DIRS)?
Пробовал таким образом
'DIRS': [
os.path.join(BASE_DIR, 'templates')
],
List-вьюха (главная) подхватила нужный темплейт, а другая уже не хочет :)

Serge
30.03.2017
20:03:26
'loaders': [
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
],
это сделал?

Senpos
30.03.2017
20:04:48
Нет. Сейчас попробую.

Serge
30.03.2017
20:06:58
Это в OPTIONS

Senpos
30.03.2017
20:08:55
Да, я понимаю. Но так не работает.
Ошибка
ERRORS:
?: (templates.E001) You have 'APP_DIRS': True in your TEMPLATES but also specify 'loaders' in OPTIONS. Either remove APP_DIRS or remove the 'loaders' option.
По совету ошибки сообщения - закоментировал 'APP_DIRS': True,
Но тогда темплейт все-равно не находит.

Serge
30.03.2017
20:09:20
Покажи структуру

Senpos
30.03.2017
20:09:27
Отсек Templates целиком: http://vpaste.net/wRy1z

Denis
30.03.2017
20:10:42
Мне кажется или manage.py и остальное в папке templates?

Serge
30.03.2017
20:11:11
Да чет какая то кривая струтура

Senpos
30.03.2017
20:11:20

Serge
30.03.2017
20:12:23
| src
| -- blog_project
| -- -- blog
| -- templates
| -- static
| -- manage.py
Вот как быть должно

Senpos
30.03.2017
20:13:21
Да? Я просто не переносил никуда папку с приложением, после того как создал его при помощи manage.py startapp

Serge
30.03.2017
20:13:44
Понимаешь

Denis
30.03.2017
20:14:39
А вот там есть опция —dir или вроде того
чтобы указать куда

Serge
30.03.2017
20:14:50
У тебя щас блог как бы не в приложении в основном
Поэтому и шаблоны он не видит

Google

Senpos
30.03.2017
20:15:19
Сейчас перенесу.

Eugene
30.03.2017
20:18:01
в two scope django норм про структуру описано

Denis
30.03.2017
20:19:49
Кстати, может кто что посоветовать для реализации read only пермишнов в админке?

Senpos
30.03.2017
20:20:02

Denis
30.03.2017
20:20:14
я нарыл https://github.com/chrisspen/django-admin-steroids
мб кто юзал

Eugene
30.03.2017
20:20:30
get_readonly_fields мб

Denis
30.03.2017
20:20:41
нене
я имею в виду чтобы не change
а только смотреть
в change форме
мб есть что то чтобы не пилить кастом

Eugene
30.03.2017
20:21:22
всмысле? Объясни полностью задачу)

Denis
30.03.2017
20:21:50
Задача предоставлять некоторым пользователям доступ per-model только для чтения
в админке

Eugene
30.03.2017
20:22:34
ааа, понял, не знаю:)

Сергей
30.03.2017
21:09:49
get_readonly_fields
Там есть реквест и в нем юзер
Легко проверяется
И отдаются все поля в ридонли

Google

Denis
30.03.2017
21:17:29
Окей посмотрю

.
30.03.2017
21:22:48
http://docs.sqlalchemy.org/en/latest/orm/extensions/declarative/basic_use.html
Я так понял, что подключился к существующей бд, мы можем так
mymetadata = MetaData()
Base = declarative_base(metadata=mymetadata)Но теперь появился вопрос, как адекватно строить запросы, без описанных таблиц(или мы все же в любом случае их описываем), т.е. делая какой-то такой запрос
for row_1, row_2 in session.query(Polls, PollsAnswers).filter(
or_(Polls.date_end < now, Polls.is_open == 0)).filter(PollsAnswers.poll_id == Polls.poll_id).all():
result = PollsResults(
poll_id=row_1.poll_id,
header=row_1.header,
text=row_1.text,
issues=json.dumps({'answer_id': row_2.answer_id, 'count_votes': row_2.count_votes, 'text': row_2.text}),
date_start=row_1.date_start,
date_end=row_1.date_end
)Я слишком часто оперирую объектами таблиц
Сорри, что заебываю тупыми вопросами, вроде разобрался


Омурбек уулу
31.03.2017
08:57:53
Привет, кто писал templetatag ? которая будет делать каждый 15 букв отступы ставить
допустим dsfgfdsafgdsfgfdsgfdsgds@gmail.com и половину сделал отступ след строку

Сергей
31.03.2017
09:00:04
и в чем проблема?

Омурбек уулу
31.03.2017
09:01:12
кто делал ?
я делаю так {{ obj.email| join:" "}}
но он каждую букву делает отступы
а мне надо после 15 букв

Andrey
31.03.2017
09:27:49
'''def chunks(l, n):
"""Разделяет список на списки нужной длины"""
for i in range(0, len(l), n):
yield l[i:i + n]'''
'\n'.join(chunks(text, 15))
Извиняюсь за форматирование сообщений, забыл, как это правильно делается.

Lulz
31.03.2017
09:30:09
``

Омурбек уулу
31.03.2017
09:36:11
Я сделал так
@register.filter(name='smarttruncatechars')
def smart_truncate_chars(value, max_length):
if len(value) > max_length:
return "%s\n%s" % (value[:max_length], value[max_length?)
Всем спасибо

amureki
31.03.2017
09:39:20

Senpos
31.03.2017
13:50:11
@dgon_kondrasov Пользуетесь Cookiecutter'ом? Офигеть он мне тут структуру создал! :)
Привет всем.

Google

amureki
31.03.2017
13:52:08

Senpos
31.03.2017
13:52:40
Да, забыл упомянуть, что "структуру" брал из книги Two Scoops of Django 1.8
Пожалуй, руками сделаю из примера.

Serge
31.03.2017
13:53:52
Я 1 раз написал скрипт который создает структуру которая мне нужна, принимая имя приложения и запускаю его на старте каждого проекта, очень удобно и давно уже забыл что такое начинать новый проект и вспоминать какие пакеты нужны и т.д.

amureki
31.03.2017
13:56:25
у меня просто реп есть с нужной мне структурой)

Senpos
31.03.2017
13:56:50
Поделитесь? Посмотреть. :)
Структура из книжки мне кстати приглянулась.

Serge
31.03.2017
13:57:30
Ну реп репом, а надо же сгенерировать ключ, добавить везде имя приложения, имя базы и т.д.
У меня это автоматом

amureki
31.03.2017
13:57:45

Serge
31.03.2017
13:58:23
А что тайм зона Берлин)

amureki
31.03.2017
13:58:46
что ближе, то и стоит :)

Serge
31.03.2017
14:00:02
У меня типо того ток пожирнее, всякие celery и admin-tools уже свтроено ибо в каждом проекте юзаю

amureki
31.03.2017
14:00:48
вот я решил не грузить всем
тот же селери довольно быстро подымается, а на мелких POC (proof of concept) оно не нужно

Senpos
31.03.2017
14:07:16
Посмотрел другие структуры для Кукикаттера, интересные шутки. Куда не глянь - вроде красиво
Правила настройки settings.py из книги для 1.8 применимы к 1.10?
Вот что у меня получилось используя рекомендации: https://dpaste.de/ZHh4
@mr_rown Да, я понимаю, что это немного отличается от того, что вы рекомендовали, но на данном этапе мне будет проще придерживаться книжки, чтобы вникнуть.