
Ruslan
21.02.2017
21:51:03
спамер

Chikiro
22.02.2017
07:32:34
Некоторые умеют читать по-английски, но когда начинают писать комментарии - тушите свет. Очень сложно понять, куча ошибок. Или названия переменным дают, один "ведущий программист" назвал свойство valNotExist, при том там еще и ненужная оптимизация, потому что можно было само значение присылать. Разработчик ссылался на то, что данных слишком много (аж 200-300 символов).
Гораздо удобнее же называть свойства и методы объекта, если они возвращают bool, is_<something> - is_active, is_deleted, has_<something> - has_val, has_data, has_title, чем этот жуткий notExist.

Google

Ruslan
22.02.2017
07:41:31
наследие С++, покалеченные люди

Артем
22.02.2017
08:13:42
Ребят тут такое,
а как деплоить в ажуре джангу, в акке ажура доступно только создание web app(создавать ubuntu низя) ?

Alexander
22.02.2017
08:21:08
у них есть статья https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-python-create-deploy-django-app

Chikiro
22.02.2017
08:22:30

Артем
22.02.2017
08:23:41

Ruslan
22.02.2017
08:24:22
хм, переменные окружения... но их же тоже сеттить надо

Alexander
22.02.2017
08:24:27
я бы делал вот так https://docs.microsoft.com/en-us/azure/app-service-web/app-service-linux-using-custom-docker-image
всё в докере везде
это позволит легко перейти от Azure куда-нибудь ещё

Артем
22.02.2017
08:25:14

Alexander
22.02.2017
08:26:52
вот ещё есть статья на эту тему, про Docker на Azure https://docs.microsoft.com/en-us/azure/virtual-machines/virtual-machines-linux-dockerextension
лучше 1 раз разобраться с докером [или rkt'ом] (ну, кто не умеет) и использовать его везде, чем на каждом хостинге разбираться с их схемами деплоя

Google


Alexander
22.02.2017
08:31:28
то есть вне зависимости от того, где будет выложено наше приложение, мы делаем некий образ с ним, у нас есть образ с приложением, он же app-server (uWSGI, допустим), у нас есть образ с нашей Postgres (директория для хранения базы данных будет на хосте, а вот всё остальное в образе) и некий web-server (как и к app-server'у, к нему подключается директория на хосте для хранения media-файлов, если они у нас, ну, или просто проксирует к app-server'у, тогда у него две задачи, а не три - проксирование и получение сертификатов)
и при старте app-контейнера мы указываем через переменные окружения логин/хост/пароль для подключения к базе, а в settings.py через environ ловим значение этих переменных окружения
в общем-то сделать вы можете как вам угодно, работать оно будет и классическим способом, но вот такой способ через контейнеры считается более продвинутым и сейчас все говорят о докере и контейнерах, devops в том числе про это, это позволит проще масштабировать приложение, сделать удобнее доставку приложения на сервер, будет проще применить blue-green deployment
то есть вне зависимости от того, где будет выложено наше приложение, мы делаем некий образ с ним, у нас есть образ с приложением, он же app-server (uWSGI, допустим), у нас есть образ с нашей Postgres (директория для хранения базы данных будет на хосте, а вот всё остальное в образе) и некий web-server (как и к app-server'у, к нему подключается директория на хосте для хранения media-файлов, если они у нас, ну, или просто проксирует к app-server'у, тогда у него две задачи, а не три - проксирование и получение сертификатов)
в этой схеме выше можно упростить и избавиться от media-папки на сервере, использовав, например, http://django-storages.readthedocs.io/en/latest/backends/azure.html
то есть статика и медиа-файлы будут записываться туда, а вы на своём балансировщике средствами веб-сервера или DNS сделаете нормальные media/static.your-domain.com, с Azure я так не делал, но делал с Backblaze B2, гайд тут: https://blog.darovi.co/creating-a-cdn-with-backblaze-b2-and-cloudflare-for-free-2f7a3efa0c1#.xs7rxvfh3 (с Azure всё должно быть по аналогии)
через DNS можно сделать только на отдельном поддомене, как вы понимаете, если нужна директория - то через web-server/балансировщик, то есть у вас там будет или traefic или Caddy Server или nginx или HAProxy какой-нибудь и редирект с /media/ на Azure Storage


Сергей
22.02.2017
09:13:40
всем привет, кто использовал dal.autocomplete, подскажите
url(
'actor_autocomplete/$',
autocomplete.Select2QuerySetView.as_view(model=Actors),
name='actor_autocomplete',
),
выдает ошибку, что в модели Actors нет поля name. Его и вправду нет, но как переопределить это поле не создавая свою вью?
т.е. можно ли в Select2QuerySetView передать параметр переопределяющий поисковое поле?

Ruslan
22.02.2017
09:15:02
сделать свойство name?

Сергей
22.02.2017
09:15:33
не понял вопроса

Dmitriy
22.02.2017
09:17:48
всем привет, кто использовал dal.autocomplete, подскажите
url(
'actor_autocomplete/$',
autocomplete.Select2QuerySetView.as_view(model=Actors),
name='actor_autocomplete',
),
выдает ошибку, что в модели Actors нет поля name. Его и вправду нет, но как переопределить это поле не создавая свою вью?
т.е. можно ли в Select2QuerySetView передать параметр переопределяющий поисковое поле?
нет, только свой класс, в котором переопределить:
def get_queryset(self):
"""Filter the queryset with GET['q']."""
qs = super(BaseQuerySetView, self).get_queryset()
if self.q:
qs = qs.filter(name__icontains=self.q)
return qs

Ruslan
22.02.2017
09:18:04
это намёк
сделать свойство, которое смотрит на нужное поле

Сергей
22.02.2017
09:18:28

Dmitriy
22.02.2017
09:19:12

Eugene
22.02.2017
10:00:35
Ребятушки расскажите за правильный порядок функций.
Типа в models:
Meta:
blabla
def __str__
etc
или
def __str__
meta:
blabla

Ruslan
22.02.2017
10:00:49
а доку читал? :)

Eugene
22.02.2017
10:01:14
на эту тему нет:)
Знаю, только что после всех полей должно быть, а порядок нет:(
Мне бы ссылочку :)
найти не могу :D

Pavel
22.02.2017
10:02:58
а что, в питоне играет роль порядок определения полей?

Ruslan
22.02.2017
10:03:16
в доке нету :)

Google

Ruslan
22.02.2017
10:03:33
в джангобуке рекомендовали после полей мету писать, потом юникод, потом остальное

Antony
22.02.2017
10:03:54
как хотите так и определяйте, я метаклас ставлю всегда в конце с остальным системным

Eugene
22.02.2017
10:04:52
Ну нее, как хотите не годиться, это не правильно как-то, надо же следовать рекомандациям и стайл гайду:)
https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/coding-style/ ток вот это нагуглил:)
The order of model inner classes and standard methods should be as follows (noting that these are not all required):
All database fields
Custom manager attributes
class Meta
def __str__()
def save()
def get_absolute_url()
Any custom methods

Antony
22.02.2017
10:06:16
стайл гайд говорит что все будет в контексте процесса

Eugene
22.02.2017
10:06:27
Вот этому и буду следовать:)

Antony
22.02.2017
10:06:30
и
не, вы какой то неправильный
import this
прочтите

Ruslan
22.02.2017
10:07:42

Eugene
22.02.2017
10:08:22
Я вот примерно так и делал, ток часто путал где лучше написать Meta: после полей или после всех методов

.
22.02.2017
14:44:40
Гайс, я правильно понимаю, чтобы получать параметры из урла, то нужно всегда юзать TemplateView?

Pavel
22.02.2017
14:46:50

.
22.02.2017
14:51:55
url(r'^(?P<name_board>[a-z]{1,4})/$' name_board не вытащиться же так

Eugene
22.02.2017
14:52:29
DetailView

Michael
22.02.2017
15:04:40
url(r'^res/(?P<somevar>[^/]+)/$', SomeView.as_view(), name='someapp'),
class SomeView(View):
def get(self, request, somevar):
somecode(somevar)

Eugene
22.02.2017
15:05:49
get_object()

Serge
22.02.2017
15:12:49
В любом View в get и в post можно получить name_board

Google

Serge
22.02.2017
15:13:18
А по логике лучше использовать DetailView как выше написали

Eugene
22.02.2017
15:22:58
В DetailView даже переопределять метод get_object не надо будет, оно само поймет.

Pavel
22.02.2017
15:26:28

Eugene
22.02.2017
15:27:41
Если с kwarg ей помочь, да?
зачем? Она и так знает по умолчанию name_board - в шаблоне будет как {{ object }}
Ну или context_object_name = "blabla"
Ааа, параметры, извините не увидел вопрос полностью:)

Pavel
22.02.2017
15:29:54

Admin
ERROR: S client not available

Pavel
22.02.2017
15:31:54
Кстати, могли бы и магию запилить, чтобы единственный kwarg понимался как поле фильтрации в get-object.

.
22.02.2017
15:32:47
Пытаюсь щас CBV освоить. Я правильно понял, что DetailVeiw используется для отображения одного объекта, а ListView для отображения списка объектов. По факту у меня 2 шаблона, в одном я вывожу 2 списка объектов, а в другом объект и список объектов, которые связаны с ним. Мне в обоих случаях нужно ListView юзать?

Ruslan
22.02.2017
15:33:08
да нафиг оно не надо, сложнее
можешь глянуть в код джанги, помедитировать и всё понять, но оно неочевидно и надо этим часто пользоваться, чтобы помнить
обычными функциями быстрее и проще сделать

Pavel
22.02.2017
15:34:04
Снова напомню про ccbv.co.uk

Eugene
22.02.2017
15:34:13

Pavel
22.02.2017
15:34:17

Ruslan
22.02.2017
15:34:47

.
22.02.2017
15:35:07
обычными функциями я уже все сделал и у меня получился дикий говнокод, решил освоить CBV и подправить код, да и просматривая вакансии часто вижу, что люди на CBV пишут

Pavel
22.02.2017
15:35:24
Например, пагинация в ListView включается одним параметром. В FBV это целая история.

Ruslan
22.02.2017
15:35:25

Eugene
22.02.2017
15:36:07
http://www.cdrf.co/ можно еще вот :)

Google

Ruslan
22.02.2017
15:38:35
добавляй

.
22.02.2017
15:39:11

amureki
22.02.2017
15:41:12
эти ссылки в факе ж есть)
ленивые люди

Ruslan
22.02.2017
15:42:31
поискал, не увидел

amureki
22.02.2017
15:43:40
https://raw.githubusercontent.com/amureki/django_faq/master/README.md
ccbv and cdrf are there

.
22.02.2017
15:44:02
я этот факт щас в первый раз от тебя вижу

amureki
22.02.2017
15:44:17

.
22.02.2017
15:45:15
с телефона щас зашел увидел, с веба ничего нет

amureki
22.02.2017
15:45:47
окей, ленивые люди у телеграма

Ruslan
22.02.2017
15:45:59
а я в доку джанги полез :)

amureki
22.02.2017
15:46:02
не могут запилить фунциональность в веб клиенте
возможно, стоит добавить линк в описание чата так же

Alexander
22.02.2017
15:49:48
ага, добавил

amureki
22.02.2017
15:50:13
thx!