
Rinat
25.05.2017
05:43:02
всем привет. а какая лучшая практика для создания и работы с m2m?

Senpos
25.05.2017
05:51:28
Неплохая статья о том, как добавить в админку ссылки в list_display для ForeignKey полей
https://medium.com/@hakibenita/things-you-must-know-about-django-admin-as-your-app-gets-bigger-6be0b0ee9614
(Related Fields -> admin_link)
Для того, чтобы эти поля сортировались:
category_link.short_description = 'Category'
category_link.admin_order_field = 'category'

Ruslan
25.05.2017
05:57:25
как на CBV просто принять пустой пост?

Denis
25.05.2017
05:57:55
def post(...) ?

Google

Ruslan
25.05.2017
06:03:29
хм
шикарно
class EventsView(mixins.JSONResponseMixin, generic.TemplateView):
def post(self, request, *args, **kwargs):
context = {'tasks': []}
return self.render_to_json_response(context)

Set
25.05.2017
06:24:35
привет всем подскажите пожалуйста как сделать что бы страница отображалось 5 сек потом редирект делала

Сергей
25.05.2017
06:25:25
js?

Set
25.05.2017
06:25:53
дажнго

Сергей
25.05.2017
06:26:37
без js наверно никак.. но интересно, мб кто придумает или знает

Set
25.05.2017
06:27:00
это в функции надо сделать
я только не знаю как в джанго
указать время 3 сек

Senpos
25.05.2017
06:27:13
Гуглится только с JS
https://stackoverflow.com/a/16891158

Никита
25.05.2017
06:38:19

Сергей
25.05.2017
06:39:30

Rookie
25.05.2017
06:58:45
Очевидно, пока не умеет js?

Google

Artyem
25.05.2017
07:14:38

Sergeu
25.05.2017
07:31:12
Всем доброе утро. У меня две модели. Owner и Room(FK на Owner, on_delete=model.CASCADE). Субд MySQL(innodb). Случилась ситуация что когда то из субд были руками удалены овнеры и об этом ничеко небыло известно до момента как потребовалось удалить румы, на что я резонно получил DoesNotExist: Owner matching query does not exist.
Собственно вопрос. Есть ли методы регламентировано чекать InnoDB на целостность? Check Table говорит что все окей.

Andrey
25.05.2017
07:31:57
Обработай DoesNotExist и делов-то

Sergeu
25.05.2017
07:36:50
Хотелось бы в селлери какойто таск повесить который будет хотябы раз в сутки базу чекать
Почему Check table в InnoDB не работает никто не вкурсе?

Сергей
25.05.2017
07:46:16

Rookie
25.05.2017
07:50:30
Бэкапы? Да ну их.

Сергей
25.05.2017
07:51:15
Бэкапы? Да ну их.
не всегда) бывает, что в наследство достается такая БД.. намучался я с этим... ну да ладно)

Sergeu
25.05.2017
07:54:44

Rookie
25.05.2017
07:55:07
Ну да. Наследство - тяжёлая ноша.
Не знаю как насчёт текущего примера. Ну, мне кажется, что sqlalchemy automap_base() не собралась бы с потерянными fk.
Можно попробовать собрать модели из базы и посмотреть ошибки, возможно, это решение.
from sqlalchemy import create_engine
from sqlalchemy.orm import Session
from sqlalchemy.ext.automap import automap_base
engine = create_engine('mysql://user:pass@127.0.0.1:3306/db_name', echo=False)
Base = automap_base()
Base.prepare(engine, reflect=True)
Room = Base.room
session = Session(engine)
qs = session.query(Room).all()

Олег
25.05.2017
08:03:46
ого, я 666 :)

Andrey
25.05.2017
08:03:55
667

Олег
25.05.2017
08:04:00
:(

Сергей
25.05.2017
08:09:42
verbose_name?

Andrey
25.05.2017
08:09:44
чтобы в url были русские имена?

Google

Andrey
25.05.2017
08:10:04
из него можно и урл формировать

Олег
25.05.2017
08:12:11

Rookie
25.05.2017
08:15:11
Более того, потом можно это тащить куда то, обращаясь к ._meta.verbose_name

Олег
25.05.2017
08:15:43

Rookie
25.05.2017
08:16:30
Имеется в виду обращение к протект класса?
Например, чем это так уж плохо?
@classmethod
def __repr__(cls):
return cls._meta.verbose_name_plural

Andrey
25.05.2017
08:18:27
Так поля иногда подтягивают. Я так свою админку делал с универсальным билдом таблицы итемов.

Rookie
25.05.2017
08:20:19
Ну, извращений можно навыдумывать вагон))
@classmethod
def __repr__(cls):
return '%s/%s' % (__package__, str(cls.__name__).lower())
Кусок для передачи урлов был.

Senpos
25.05.2017
08:22:17
Нужно получить список оценок для студента по предметам его специальности.
Предметы получил легко.
Сокращенный листинг: https://gist.github.com/Senpos/a5b8879403821665754bebccca831b10
А вот с предметами немного запнулся. Как правильно отфильтровать нужное мне?

Rookie
25.05.2017
08:24:44
prefetch_related().all()
Хотя, не известно, как ты узнаешь для какого студента получить оценки. Но весь твой лист subjects будет содержать
for i in subject_qs:
i.mark.any_mark_field

Senpos
25.05.2017
08:32:56
prefetch_related().all()
Это как я понял, получу все связанные и указанные мной поля одним запросом (или минимизирую их кол-во). У меня больше проблема в составлении запроса.
Чтобы узнать нужные оценки - мне нужно знать для какого студента. Ну. это легко, он лежит в self.kwargs['pk'].
Теперь мне нужно знать, для каких предметов получать оценки. Значит, получаю предметы по студенту.
Далее, когда уже есть список предметов - можно фильтровать оценки по ним.

Rookie
25.05.2017
08:35:55
В kwargs, судя по вьюхе, лежит pk на speciality, ты же по нему получаешь список предметов?

Senpos
25.05.2017
08:36:28

Rookie
25.05.2017
08:36:31
И второго pk там быть не может. Иначе дупликатед кейз

Senpos
25.05.2017
08:36:31
там студент

Rookie
25.05.2017
08:37:11
А, я про view

Google

Senpos
25.05.2017
08:37:51
В вью я показал как получаю предметы
А вью для оценок еще нет, поэтому сюда и написал)
сейчас скину что набросал и что не получилось

Rookie
25.05.2017
08:38:44
Ну, тогда в модели студента сделай fk на его специальность, и всё становится просто.

Senpos
25.05.2017
08:39:50
По этому же принципу аналогично?

Rookie
25.05.2017
08:43:13
Можно и не делать тогда. Но тебе придётся перемещаться по ключам до нужного.

Admin
ERROR: S client not available

Senpos
25.05.2017
08:43:26
subjects = get_list_or_404(Subject, speciality__pk=student.group.course.speciality.pk)
Вот так сейчас пробую

Andrey
25.05.2017
08:44:02
{{ student.univer.eshe_pole.group.year.status.id }}
хехе

Senpos
25.05.2017
08:48:38
Пробую вот так.
def get_queryset(self):
student = get_object_or_404(Student, pk=self.kwargs.get('pk'))
subjects = get_list_or_404(Subject, speciality__pk=student.group.course.speciality.pk)
marks = get_list_or_404(Mark, subject__in=subjects)
return marks
Меня интересует, такая запись для фильтра сработает?
marks = get_list_or_404(Mark, subjects)
Оно может отфильтровать qs по другому qs?)
Проверил, работает как надо, спасибо за помощь :)
Доделаю функционал - тогда уж буду играться с select_related, prefetch_related и django-toolbar
Боюсь туда даже смотреть сейчас :D

Artyem
25.05.2017
09:05:49

Sergeu
25.05.2017
09:07:03

Senpos
25.05.2017
09:13:19
Возможно кто-нибудь встречал перевод стандартной админки джанги на украинский язык? UA-uk в LANGUAGE_CODE не подхватилось, да и гуглится плохо)

Eugene
25.05.2017
09:14:53
UA

Senpos
25.05.2017
09:15:07

Google

Senpos
25.05.2017
09:15:27
Я в доке смотрел на список кодов языков, но там общие сведения, а не то, что поддерживается в Джанге

Eugene
25.05.2017
09:15:35
https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes

Senpos
25.05.2017
09:16:08
Стоп, я ошибся, сори. Все работает.

Сергей
25.05.2017
09:16:46
если посмотреть в django/conf/locale, то там есть uk

Senpos
25.05.2017
09:17:06
А вот почему:
OSError: No translation files found for default language ГФ.
Не та раскладка и невнимательность.
А говорил мне PyCharm, используй фишки для интернациональных раскладок.. :(

Grigoriy
25.05.2017
09:51:24
Кто-нибудь знает, django сигнал pre_save лочит базу? Наподобие триггеров.

Denis
25.05.2017
10:19:24
И pre_save к базе не должен обращаться

.
25.05.2017
12:20:54
Гайс, не могу разобраться как прочитать данные из загруженного файла. Есть форма с FileField и вьюха FormVIew. После валидации формы, я хочу прочитать данные из файлов. Но при вызове read(), я получаю пустую байтовую строку, при том, что в методе clean той же формы, при вызове read() я получаю нужные данные, не могу понять в чем проблема.
{'key_file': <InMemoryUploadedFile: test.key (application/x-iwork-keynote-sffkey)>, 'crt_text': '', 'crt_file': <InMemoryUploadedFile: test.crt (application/pkix-cert)>, 'key_text': ''}
b''print(form.cleaned_data)
print(form.cleaned_data['crt_file'].read())
crt_file = cleaned_data.get('crt_file')
if crt_file:
crt_file_data = crt_file.read()Это clean формы и здесь все как надо работает, не понимаю, почему в сlean все ок, а во вьюхе уже нет

Сергей
25.05.2017
12:23:38
весь медот clean для файла кинь сюда

.
25.05.2017
12:24:24
return нет
ток щас заметил
не не, все правильно
его там и не должно быть)

Eugene
25.05.2017
12:25:13
ну хватит в чат кидать такие огромные листинги кода:(

Max
25.05.2017
12:25:48
Всем привет. Кто подскажет, как использовать postman с django rest framework? Самый простой способ получить csrf token