Задать вопрос
Ответы пользователя по тегу Django
  • Как правильно отправлять запрос из вне в django?

    https://stackoverflow.com/questions/3506208/jquery...
    enable-cors.org

    • если просто необходимо получать данные вам хватит и jsonp
    • cors получше, но тут надо учитывать рассчитываете ли вы на старые IE.
    • и собственно другой вариант: со странички хоста обращаетесь к странице самого хоста, которая уже спроксирует запрос на свервер и вернёт результат.
    Ответ написан
    1 комментарий
  • Python + json, почему не серилизуется массив?

    t = Tiket.objects.filter(user=request.user, sost=True)

    это не список(list) объектов, это ленивый QuerySet, который при попытке итерации по оному будет вычислен(и в ряде других случаев), и на каждом шаге будет возвращать экземпляры модели, и этот объект не может быть преобразован в json(стандартными средствами).
    Пр этом экземпляры модели, никоим образом сами по себе в json не преобразуются, нет в json никаких моделей, если хотите получить список json объектов, то подавать надо список словарей.

    t = Tiket.objects.filter(user=request.user, sost=True).values()
       
        return JsonResponse({'tiketsS': list(t)})

    При этом нужно быть уверенным, что все поля которые скармливаем JsonResponse джанга может преобразовать в json (вашу модель должен суметь), только обратите внимание на дату, она у вас станет строкой.

    З.Ы. если хотите ответить используйте "комментировать"
    Ответ написан
  • Как запускать функцию через определенное время в Django проекте с помощью UWSGI?

    для такого простого случая https://docs.djangoproject.com/en/1.8/howto/custom...
    просто в самой джанге напишите команду, и запускайте кронтабом, проверенное замечательное средство.
    Ставить отдельные решения, в таком простом случае совершенно не требуется, и будет только оверхедом.
    Ответ написан
    Комментировать
  • Django F + update не обновляет поле?

    Вам нужно вот это https://docs.djangoproject.com/en/1.8/ref/models/i...
    У вас есть экземпляр модели(представление в виде объекта питона записи из бд), когда вы делаете update, вы обновляете данные в самой бд, экземпляр модели при этом каким был таким и остался.
    Ответ написан
    Комментировать
  • Как реализовать log журнал в Django?

    IP пользователя, URL, HTTP код ответа.

    любой нормальный веб сервер сможет залогировать все эти параметры, и это будет быстрее чем через джангу логировать тоже самое.

    Вот если вам понадобиться логировать больше информации, и которую затруднительно/невозможно собрать из веб сервера, надо будет организовать подобное со стороны джанги.
    В моём проекте подобное есть и от использования в нём модуля logging мы отказались, поскольку нафиг он не нужен под наши задачи.
    Есть отдельное апп, которое описывает:
    • модель данных в которой будет всё хранится(именно так логи доступа которые собираются в бд)
    • описывает миддлварь, который собственно будет собирать информацию
      • Подобное логирование, особенно средствами джанги, накладно по ресурсам, а уж при каждом запросе писать в бд ещё хуже, поэтому в мидлваре собирается словарь с минимальной необходимой информацией и клдётся в кеш.

    • конфиигурацию для роутера бд (логи доступа хранятся в отдельной бд)
    • Задачки для сентри
    1. Одна задачка каждую минуту, забирает данные из кеша, дообрабатывает их и кладёт все разом в бд.
    2. Другая дёргает раз в сутки процедуру, которая проверяет наличие партиций в бд на следующий месяц, и при необходимости создаёт оные и обновляет триггерные функции.
    Ответ написан
    Комментировать
  • Переход с Django Templates на Jinja2?

    появление официальной возможности подключить jinja не значит что расширения стали бесполезны, когда потребовалось в итоге взвесив все за и против всё равно остановился на niwinz.github.io/django-jinja
    При этом я не отключал стандартные шаблоны, я использую и то и другое, где узкем местом стали шаблоны, перешел на использование jinja.

    пользуюсь примерно таким:
    TEMPLATES = [
        {
            'NAME': 'django',
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [],
            'APP_DIRS': False,
            'OPTIONS': {
                'string_if_invalid': 'VARIABLE ERROR',
                'context_processors': [
                    "django.contrib.auth.context_processors.auth",
                    "django.core.context_processors.request",
                    'django.contrib.messages.context_processors.messages',
                    'core.context_processors.cities_list',
                    'django.core.context_processors.static',
                ],
                'loaders': [
                    ('django.template.loaders.cached.Loader', [
                        'django.template.loaders.filesystem.Loader',
                        'django.template.loaders.app_directories.Loader',
                    ]),
                ],
    
            },
        },
        {
            'NAME': 'jinja2',
            'BACKEND': 'django_jinja.backend.Jinja2',
            'DIRS': [],
            'APP_DIRS': True,
            'OPTIONS': {
                'autoescape': False,  # !!!!!!
                "app_dirname": "jinja2",
                "match_extension": ".html",
                "newstyle_gettext": True,
                "translation_engine": "django.utils.translation",
                "extensions": [
                    "jinja2.ext.do",
                    "jinja2.ext.loopcontrols",
                    "jinja2.ext.with_",
                    "jinja2.ext.i18n",
                    "jinja2.ext.autoescape",
                    "django_jinja.builtins.extensions.CsrfExtension",
                    "django_jinja.builtins.extensions.CacheExtension",
                    "django_jinja.builtins.extensions.TimezoneExtension",
                    "django_jinja.builtins.extensions.UrlsExtension",
                    "django_jinja.builtins.extensions.StaticFilesExtension",
                    "django_jinja.builtins.extensions.DjangoFiltersExtension",
                    # "coffin.spaceless" не работает в py3
                ],
            }
        },
    ]
    Ответ написан
    2 комментария
  • Не выполняется Q() object запрос?

    О, этот просто замечательный запрос, решение для которого есть, но оно не самое явное:
    https://docs.djangoproject.com/en/1.8/topics/db/qu... (крайне рекомендую внимательно прочитать)
    У меня правда была другая ситуация я спокойно использовал последовательности фильтров, а оно приводило к непонятным выборкам.

    в вашем случае должно быть так:
    Product.objects.filter(characteristic__characteristic_type__slug='brands').filter(characteristic__characteristic_type__slug='ingridient')

    и вот в случае "обратной связи" или связях многие ко многим, эти два отдельных фильтра, не тоже самое что записать всё в одном фильтре!
    Ответ написан
  • Почему после отправки POST - запроса через AJAX идет перенаправление на localhost:8000/?

    ещё на данный момент обратите внимание djbook.ru/rel1.8/ref/settings.html#append-slash
    Ответ написан
    Комментировать
  • Почему не работает ckeditor?

    https://github.com/django-ckeditor/django-ckeditor...
    5 Run the collectstatic management command: $ ./manage.py collectstatic. This'll copy static CKEditor require media resources into the directory given by the STATIC_ROOT setting. See Django's documentation on managing static files for more info.

    этот пункт точно выполнили?
    Ответ написан
    2 комментария
  • Как сделать древовидную структуру в django 1.8?

    Пробовал django-mptt, но после пары дней тестов отказался, при попытке создать из 40к элементов порядка 700 деревьев, период беспроблемной вставки составлял элементов 500, потом начинали вылитать исключения, с включением отложенной перестройки дерева, период увеличился до 1500 элементов. на этом знакомство закончилось. По моим впечатлением вещь удобная, но когда данные редко меняются, и их не особо много.
    В итоге ограничился собственными костылями в виде полей root, parent, lvl, и хитрый order. чего более чем хватало для моих нужд(но это меньше чем то что предлагает django-mptt).
    Ответ написан
  • Как правильно сделать декомпозицию приложений Django?

    Вроде простой вопрос, на который тем не менее, крайне сложно дать вразумительный ответ.
    Чем больше приложений в проекте, тем лучше?

    нет, точно также не является лучшей практикой пихать всё в одно приложение.

    Разделение на модули делается для одной простой вещи - борьба со сложностью.
    Разрабатывать и поддерживать гораздо проще несколько модулей, каждый со своим функционалом и спецификой, чем один божественный апликйешен.
    Самое очевидно разбиение, эт вынесение специфического функционала, напрямую не влияющего на функционирование "ядра", допустим отчёты(если вы не саму систему отчётов пишете), они находятся в отдельном апликешене, я в принципе вообще могу их отключить, и при этом основная функциональность никак не будет затронута.
    Затем идёт явное логическое разделение, специфический функционал/задачи, допустим работа с адресным справочником, его периодическая синхронизация и прочее, все специфические задачи работы с ним находятся в отдельным модуле, и как они реализованы не касается остальной системы, при этом сам адресный справочник уже активно используется в остальной системе.
    И самый не очевидный этап, это когда один из апликешенов становится слишком сложным, тут можно воспользоваться, как разнесением функционала по отдельным файлам внутри самого апликешена, так и попытаться разнести его по отдельным апликешенам — собственно хорошо спроектированная система где это не придётся делать.
    Ответ написан
    Комментировать
  • Объекты с динамически создаваемыми свойствами в Django?

    собственно как предложили выше django-eav (или eav-django)
    при использовании постгре можно попробовать это: djbook.ru/rel1.8/ref/contrib/postgres/fields.html#...

    либо использовать несколько иной подход, каждый ТИП параметра хранить в отдельной табличке.
    и связывать объект с параметрами через GenericForeignKey djbook.ru/rel1.8/ref/contrib/contenttypes.html#gen... одно поле внешний ключ на специальную таблицу(описывающую все модели в проекте), второе id в той таблице.
    Ответ написан
    Комментировать
  • Почему в Django Debug Toolbar не работают логи?

    import logging
    logging.debug('Этого сообщения не будет')
    logging.info('Этого сообщения тоже не будет')
    log = logging.getLogger('django')  # описан в настройках
    log.debug('этого тоже не будет поскольку у логера "django" level: INFO')   # можно менять
    log.info('а это будет')
    log = logging.getLogger('имя которого нет в конфигурации джанги')
    log.info('тоже не отобразится')
    log = logging.getLogger('django.ololo')
    log.debug('тоже не отобразится')
    log.info('а вот этот отобразится, хоть такой канал не описан в конфиге, но начинается с django.')
    Ответ написан
    1 комментарий
  • В чем суть философии проекта Django?

    Суть в борьбе со сложностью.
    Во первых в разных апликейшинах могут действительно содержаться по сути разные сервисы, двольно косвенно связанные между собой, нет никакого смысла превращать их в единый божественный апликешен, какждый апликешен умеет делать что-то своё и это замечательно, помимо этого может быть наоборот апликейшен который предоставляет некие общие для всех интерфейсы, дабы не дублировать их.

    Помимо этого если у вас фактически на одному инстансу джанги соответствует один сервис, разделение на пликейшены опять же имеет смысл, опять таки для борьбы со сложностью, так сказать инкапсуляция ооп в макромасштабе, разделяете проект по логическим составляющим и каждая пишется в своём апликешене, это очень удобно.
    Ответ написан
    Комментировать
  • Как к данной форме приклеить ajax?

    очень мало манов на связку django + ajax

    Для джанги и и обычный запрос и ajax, выглядят практически одинаково (нормальные библиотеки добавят в запрос заголовок https://docs.djangoproject.com/en/1.8/ref/request-...), отличия начнутся в том что вам в зависимости от ответа сервера нужно написать поведение на странице, достаточно предусмотреть чтоб сервер вернул вам всё что потребуется для динамического изменения страницы(и происходить оно будет так как вы его напишете, и джанго уже тут не причём)
    Ответ написан
    Комментировать
  • Как пройти валидацию в DJANGO?

    Если единственная информация которая вам, нужна существует ли такая запись в бд, то для этого есть специальный метод: exists
    djbook.ru/rel1.7/ref/models/querysets.html#django....
    Ответ написан
    Комментировать
  • Как сделать, чтобы Django не выдавал поля с одинаковыми значениями в queryset?

    >DISTINCT ON fields is not supported by this database backend
    Ну нормальный способ как вы указали не работает.
    Тогда либо изменить сам запрос, так чтоб он не возвращал дублирующие значения, либо получить записи вместе с дубликатами и уже средствами пиона оставить только уникальные.
    Ответ написан
    Комментировать