
Vlad
28.09.2016
17:40:04
я так понял он только заголовки правильные подставляет зато сразу ко всему от апача до гуникорна
можно, но для этого надо загружать файл в озу
а это уже как-то слишком

arisu
28.09.2016
17:41:02
можно не загружать

Google

arisu
28.09.2016
17:41:08
а читать генератором
ну собсна стриминг респонс это и делает
принимает генератор на вход
а файлреспонс еще оптимизирует ответ для wsgi

Vlad
28.09.2016
17:45:17
почитаю-подумаю ещё. спасибо.
в крайнем случае можно конечно сторедж просто в медиа руте сделать, или алиас ему туда добавить, но как-то это странненько немного

Marsel
28.09.2016
18:37:38
задача то в чем?
складывать файлики в общедоступный репозиторий но не палить ссылки?
не репозиторий, а бакет скорее.

Vlad
28.09.2016
18:42:32
Отдавать файлы только авторизированным пользователям и так что бы по прямой ссылке на файл пересланной например одним из авторизованных пользователей другим людям они скачать не могли

Marsel
28.09.2016
18:43:59
я делал нечто похожее на голанге и с бакетом амазона. там вроде как можно было генерить на лету временные ссылки. т.е. прямой ни у кого не было
ну а авторизацию думаю можно тоже накидать в качестве элемента ключа
т.е. смысл в том - сохраняешь файл в бакет. хранишь ключ доступа. генеришь локальную ссылку на файл. когда кто-то обращается к файлу ты генеришь временную сылку на доступ к файлу, отдаешь ее
ну и докидываешь авторизацию

Google

Vlad
28.09.2016
18:49:04
ну да, как вариант
но мне всё равно кажется что заставлять апач или нгинкс как-то проще
а на локалхосте через manage.py не заводится через вечные косяки с MEDIA_ROOT в урлах

Marsel
28.09.2016
18:49:50
попробуй под докером разверни боевое окружение
ну как-то честно говоря фиг знает. авторизацию должно обеспечивать приложение, а не веб-сервер. имхо. просто логически )
тем более что привязка к юзерам есть
как я понял

Vlad
28.09.2016
18:51:52
да я вывешу через день-два и уже на месте проверю, пока не горит
ну так так и получается, смысл что бы веб-сервер на запрос файла отправлял в приложение
во всяком случае как я это понимаю

ultranoise ?
29.09.2016
11:52:52
Господа, а как мне сделать такой плйесхолдер, который бы обновлял текст по ajax-запросу?

Ilya
29.09.2016
11:56:29
так а самому в js поменять placeholder?
в чём проблема?

Artem
29.09.2016
11:58:06
по принятию данных с оякс запроса меняй

Eugene
29.09.2016
12:02:02

ultranoise ?
29.09.2016
12:03:54
господи, да ни при чем
извиняйте

Aleksey
29.09.2016
12:24:44
Кто нибудь solr thumbnail пользовался?
{% thumbnail image "100x100" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}
У картинки есть поле description. Нужно сделать data-description=DESCRIPTION

Artem
29.09.2016
12:38:06
насколько помню, солр аппендит свои пропертя в словарь контекста. Поэтому можешь вставлять описаловку также {{ im.desc }}
ну а вообще для исключения этих коллизий, используй другие неймспейсы

V
29.09.2016
14:12:04
извините за глупый вопрос, а зачем есть две группы по джанге с примерно равным кол-вом участников? может одну в бегинерскую переделать по аналогии с питоновскими чатами?

Google

V
29.09.2016
14:12:34
первый вопрос риторический, второй - скорее к админу группы, наверное?

Vlad
29.09.2016
14:15:12
А где вторая?

Alex
29.09.2016
14:16:22

V
29.09.2016
14:18:30
https://telegram.me/django_framework
вот
правда сейчас уже совсем не одинаковое кол-во участников

amureki
29.09.2016
14:19:22
87 человек и 180 человек - примерно равные?

V
29.09.2016
14:19:24
когда я заходил в обе, было примерно поровну

Vlad
29.09.2016
14:19:24
Спасибо

V
29.09.2016
14:19:35
тогда и тут было около сотни вроде
причем около снизу если я не ошибаюсь

Eugene
29.09.2016
14:20:44
я ту группу создал для группы своей по джанго на вк

V
29.09.2016
14:20:45
но эта мне кажется более живая

Eugene
29.09.2016
14:20:53
и когда создавал тут было больше ста

V
29.09.2016
14:21:24
хм, значит я что-то напутал про количество
ну ладно, просто я страдаю, что нет нубской группы по джанго
по питону очень уютненько в бегинерах, не чмырят особо. ну т.е. зарт чмырит, но ему можно

amureki
29.09.2016
14:23:41
почему ему можно?)

V
29.09.2016
14:24:01
я знал, что кто-нибудь спросит ))

Google

V
29.09.2016
14:24:43
ну в первую очередь потому, что он как-то беззлобно чмырит, а главное всегда дает полезной информации значительно больше, чем можно было бы рассчитывать, чем компенсирует

amureki
29.09.2016
14:24:55
опыт и знания не оправдывают скверный характер
зря вы так считаете

V
29.09.2016
14:25:27
ну мне кажется он больше амплуа поддерживает, нежели на самом деле говнюк

Eugene
29.09.2016
14:26:26
а смысл тусить в группе для новичков? чему ты там научишься?
от новичков то

V
29.09.2016
14:26:54

Bo0oM
29.09.2016
14:27:43

amureki
29.09.2016
14:27:50

V
29.09.2016
14:31:47
я терпеть не могу кряхтеть в интернетах типа "я старый и давно уже не возбуждаюсь по всякой ерунде", но подозреваю, дело именно в этом. у меня есть цель получить определенные знания, от зарта я их неоднократно получал, все остальное, что не касается достижения моей цели я просто фильтрую. считай, это цена за получение знаний. для меня это очень дешево, я ни разу еще не обиделся ))
при этом я еще более ценю и уважаю тех опытных людей, которые делятся своими знаниями с новичками без всех этих выкрутасов и прочего. но таких очень-очень мало

amureki
29.09.2016
14:41:45

V
29.09.2016
14:45:19
возвращаясь все-таки к джанго, вот например, вопрос по существу. делаю в модели поле, которое ограничено с помощью choices. в доке пишут, что для этого принято использовать константы, написал вот так:
PUBLIC = 0
UNPUBLISHED = 1
PRIVATE = 2
ACCESS_TYPES = (
(PUBLIC, 'Public'),
(UNPUBLISHED, 'Unpublished'),
(PRIVATE, 'Private')
)
access_type = models.IntegerField(max_length=1, choices=ACCESS_TYPES, default=PUBLIC)
сорри, max_length зря написал
уже прочитал, что он игнорится
а вопрос в том, правильно ли использовать int для подобных вещей и какого размера int создастся в базе? в мускуле, например, для подобных вещей логично было бы использовать tinyint

amureki
29.09.2016
14:48:15
это зависит от базы, но вроде как не принято тут париться (в постгресе точно)

V
29.09.2016
14:48:59
ага, понял, я как раз постгрес пробую, до этого имел дело только с мускулем

Google

amureki
29.09.2016
14:49:42
к слову говоря, есть пакет неплохой, где есть хорошая реализация этого чоисфиелда
https://django-model-utils.readthedocs.io/en/latest/utilities.html#choices
мелочь, но приятно


V
29.09.2016
14:50:35
о, спасибо, погляжу. но я пока совсем бегинер, хочу сначала как полагается своих костылей насочинять, а потом уже к чужим переходить )
говорят так лучше материал усваивается
а вот еще такой вопрос. использую generic.CreateView для создания записи. в модели есть поле create_date = models.DateTimeField('date created'), но я не хочу его вообще показывать в форме, хочу чтоб просто записалось в базу время создания. поэтому вьюху делаю такую:
class AddCaseView(generic.CreateView):
model = CompareCase
fields = ['name', 'access_type']
initial = {'create_date': timezone.now()}
предполагая, что он запишет в поле create_date текущее время во время создания. но нет, говорит что NULL пытается туда записать, а нельзя
просто в модель default записать?
да, похоже так и надо, запись появилась с текущим временем

amureki
29.09.2016
15:26:38
https://docs.djangoproject.com/en/1.10/ref/models/fields/#datefield

V
29.09.2016
15:26:38
т.е. create_date = models.DateTimeField('date created', default=timezone.now)

amureki
29.09.2016
15:26:48
посмотрите тут аргументы
auto_now=False, auto_now_add=False
они удобны для создания created и modified полей

V
29.09.2016
15:27:22
точно! то, что надо, спасибо!

amureki
29.09.2016
15:27:33
если вам сыоя дата нужна, да, можно в дефолт записывать

V
29.09.2016
15:28:02
своя дата в смысле не текущая а какая-то другая?

amureki
29.09.2016
15:28:49
ну да, в дефолт можно метод пихнуть, который будет рассчиывать дату на основе чего-то

V
29.09.2016
15:29:28
да, супер, все ясно
спасибо

Roman
29.09.2016
16:49:08
народ, где по поцански логику работы с дб писать?
или лучше во вьюхи вынести?