@pydjango
Django

Полезная информация и правила: https://github.com/amureki/django_faq Вакансии и резюме: @django_jobs Пофлудить идём сюда: @django_flood Статистика чата: combot.org/chat/-1001063854692

1741 members

Архив канала @pydjango 1 сентября 2016 г.

10:25:31 ДП
User 211270198
Делаю небольшой сервис с rest api
для гет запросов у всех моделей определен метод to_json:
    def to_json(self):
        return dict(schedule_id=self.id,
                    group=self.group.to_json(),
                    year=self.year,
                    semester=self.semester,
                    exercises=[exercise.to_json() for exercise in self.exercise_set.all()])
я делаю чет неправильно?
10:31:09 ДП
User 100243492
а в чем собсна вопрос?
10:32:21 ДП
User 100243492
year=self.year <- приводи лучше к таймстампу
10:32:50 ДП
User 100243492
конечно, если это дата, а не просто интовое значние, вида 2001
10:42:04 ДП
User 211270198
в данном случае это именно год, так как год+семестр однозначно идентифицируют расписание
10:42:34 ДП
User 211270198
вопрос собсна в том, что я, кажется, сейчас наткнулся на неприятную штуку и вот думаю как её решить
10:42:47 ДП
User 211270198
если в to_json название поля не совпадает с фактическим
10:43:14 ДП
User 211270198
то есть если будет group_number = self.group
10:43:42 ДП
User 211270198
то когда я буду делать put, и передавать Json, то нужно придумать обратную операцию
10:44:07 ДП
User 211270198
да и когда буду делать post с созданием новой модели
10:45:44 ДП
User 211270198
то есть по сути json, который отдаётся get запросу в таком же виде передается клиентом при создании или изменении объекта
10:46:02 ДП
User 211270198
и если вот такая ситуация в to_json
10:46:02 ДП
User 211270198
то есть если будет group_number = self.group
10:47:03 ДП
User 211270198
то при таком способе, как я щас использую:
query = json.loads(response)
new_model = model(**query)
new_model.full_clean()
new_model.save()
10:47:14 ДП
User 211270198
то вылетит ошибка, мол, group_number поля нет
10:53:33 ДП
User 211270198
а ещё вопрос по изменению полей модели
сейчас я делаю вот так
получаю через json словарь полей и
model_instance.__dict__.update(**new_dict)
10:54:04 ДП
User 211270198
насколько это правильно?)
11:27:20 ДП
User 100243492
ну как то кривовасто
11:31:24 ДП
User 211270198
стоит сделать какой-нибудь from_json в модели и делать обратную операцию, да?
12:18:43 ПП
User 378433
model_to_dict есть же
12:19:16 ПП
User 378433
Ну или нахуячь базу, которая будет все объявленные поля сериализовать
12:22:28 ПП
User 211270198
model_to_dict не то же самое что и __dict__?
12:32:13 ПП
User 211270198
Зачем в django нужен APPEND_SLASH?
12:33:03 ПП
User 211270198
Точнее, почему post-запросы обязательно должны уходить на url с / в конце
12:33:05 ПП
User 2895769
User 211270198
Зачем в django нужен APPEND_SLASH?
https://github.com/django/django/blob/master/django/contrib/redirects/middleware.py#L38
github.com/django/django/blob/master/django/contrib/redirects/middleware.py
django - The Web framework for perfectionists with deadlines.
12:33:24 ПП
User 211270198
понял куда читать
12:33:26 ПП
User 211270198
спасибо
12:34:24 ПП
User 2895769
у джанговцев принято делать урлы со слэшами на конце
12:34:33 ПП
User 2895769
а чтобы они работали лучше есть вот эта опция
12:34:43 ПП
User 2895769
если человек набрал без слэша - он подставляется
12:35:16 ПП
User 2895769
то есть он тупо редиректит на тот же самый урл, но со слэшем на конце
12:35:20 ПП
User 211270198
а какая у всего этого практическая причина?
12:36:37 ПП
User 2895769
допустим, у тебя урл вида porn.ltd/tags/anal/  , если человек наберёт без последнего слэша и эта опция не включена - он получит 404
12:36:51 ПП
User 2895769
а если включена - его редиректнет на страницу со слэшем на конце
12:37:40 ПП
User 2895769
если у тебя все урлы без слэша на конце - то тебе эта опция не нужна или нужна обратная ей
12:38:36 ПП
User 2895769
вот мне, кстати, была бы полезнее именно обратная настройка (чтобы убирал /, если вдруг на конце напишут / )
12:38:47 ПП
User 211270198
не понял всё равно практической причины
12:39:05 ПП
User 211270198
ну то есть безопасность там или че
12:39:07 ПП
User 2895769
у тебя есть urls.py
12:39:09 ПП
User 211270198
чисто приведение к одному виду?
12:39:53 ПП
User 2895769
вот там на конце если у тебя есть слэш - то если пользователь наберёт без слэша - нужная страница не откроется
12:40:03 ПП
User 211270198
а, кажется понял
12:40:15 ПП
User 211270198
это типа такая жесткая установка, что url со слэшем и без слэша - разный
12:40:22 ПП
User 2895769
а если эту опцию включить - он автоматически добавит редиректы на все урлы, на конце которых слэша нет
12:40:40 ПП
User 2895769
это он по умолчанию как раз разный)
12:40:50 ПП
User 211270198
ну вот я про умолчание и говорю)
12:42:44 ПП
User 2895769
ну вот полезнее была бы обратная опция
12:42:50 ПП
User 2895769
чтобы убирал слэши когда они есть
12:43:13 ПП
User 2895769
потому что многие по умолчанию сейчас делают урлы без слэшей на конце
12:43:25 ПП
User 2895769
а некоторые юзеры любят писать со слэшами если копипастят
12:44:01 ПП
User 2895769
а если делать это как разные страницы, наверное, для SEO плохо
12:44:12 ПП
User 2895769
получится, что каждая страница сайта в двух экземплярах на сайте
12:47:17 ПП
User 204663909
О, лев
01:00:09 ПП
User 2895769
 Здравствуйте! Царь. Очень приятно, царь. Очень приятно, здравствуйте, царь. Очень приятно, царь. Царь очень приятно. Царь. Очень приятно. Очень приятно...
01:10:41 ПП
User 204663909
Король лев