Ответы пользователя по тегу Django
  • Как выводить поля many to many в шаблоне django?

    darqsat
    @darqsat
    PM
    Я нечто подобное делал через аннотации и агрегации
    Кури https://docs.djangoproject.com/en/2.0/topics/db/ag...
    Ответ написан
    Комментировать
  • CRUD фоном через Django REST API?

    darqsat
    @darqsat
    PM
    Такое подойдет?

    def ProductList(request):
        if request.method == 'GET':
            queryset = Product.objects.all()
            return Response({'object_list': queryset}, template_name='products/product_list.html')
        elif request.method == 'POST':
            form = request.POST
            # ТВОЙ КОД
    Ответ написан
    Комментировать
  • Как в модели django для foreign key поля сделать дополнительно условие выборки?

    darqsat
    @darqsat
    PM
    У ОРМ есть метод select_related()
    Изучай:
    https://docs.djangoproject.com/en/2.0/ref/models/q...
    Ответ написан
    Комментировать
  • Как осуществить соответствие между двумя моделями?

    darqsat
    @darqsat
    PM
    А ManyToMany тебе не подойдет?
    Можно что в одну модель внести, что в другую. Или я не понимаю сути.
    Ответ написан
    Комментировать
  • Что выбрать: Django или Flask?

    darqsat
    @darqsat
    PM
    Мне было проще на джанго, у него уже всё готово и остается только на практике смотреть метод за методом. А на фласке мне было сложно, так как требовало отдельно учить ту же sqlalchemy.
    Ответ написан
    Комментировать
  • Не находит приложения и пишет "page not found ". Что делать?

    darqsat
    @darqsat
    PM
    Я не супер мастер но я чето думаю что урлы никогда не заканчиваются на слеш. Убери слеш в конце урла webexample. Оно работает с урлами админки потому что там нету индекса. Кажись админка по умолчанию кидает на admin/pages или чето такое.
    Ответ написан
    Комментировать
  • Параметры строки запроса в Django?

    darqsat
    @darqsat
    PM
    Если я правильно понял твой вопрос, то тебе интересно когда параметры передаются как параметры к запросу а когда они составляют сам URL.

    Из того что я понимаю, то параметры это опциональность. Например для сортировки или фильтрации.
    Ответ написан
    1 комментарий
  • Как правильно передать айди объeкта в ссылку?

    darqsat
    @darqsat
    PM
    Вариант 1:
    Добавляешь к своему обьекту два атрибута:
    - draft = bool
    - draft_created = datetime

    При открытии формы на создание обьекта ты уже создаешь его в базе с датой и значением True. В таком случае у тебя будет ID. Везде где мусор не нужен, можно отфильтровать по draft = False. А что бы не засорить базу, можно раз в какой то периуд времени проходить скриптом вызванным cron джобой и удалять всё что draft=True и дата создания вчера.

    Вариант 2:
    Загружаешь файлы без привязки к проекту, но хранишь список их айдишников на форме. И когда будешь создавать обьект, пройдешься по файлам и проставишь им айдишники.
    Ответ написан
    Комментировать
  • Почему форма в Django вместо ключа требует объект?

    darqsat
    @darqsat
    PM
    Потому что это строка
    Cannot assign "'14'".

    Попробуй конвертируй это в инт:
    place.location = int(form.cleaned_data['location'])

    В базе айдишники храняется как инты.
    Ответ написан
  • Как правильно собирается url django1.10?

    darqsat
    @darqsat
    PM
    Лучше конечно перейти на 2.0, там более не нужно использовать регулярки для фильтрации значений в урле. Выглидят секасно:
    path('user/<int:id>/albums/<int:album_id>', views.list_albums, name="list_albums")

    В принципе в 1.10 тоже самое только то что и вырезается при помощи регулярных выражений.

    Логика работы диспатчера примерно следующая:
    1. Веб сервер получает урл на который перешели (напр. 127.0.0.1:800/user/4/albums/12);
    2. Веб сервер вызывает функцию url_dispatcher и передает аргументом путь без айпи адресса;
    3. Диспатчер начинает идти циклом по твоему словарю url_patterns сверху вниз, и применять фильтр пока тот не будет True. Фильтр это то что идет первое, в твоем случае в 1.10 это регулярное выражение. И когда оно True, то происходит вызов функции view.NAME и передача в неё параметров из регулярки в виде аргументов.
    4. Вью получает аргументы и обьект request и далее по логике вещей, собирает ответ, достает темплейт и кладет туда контекст в виде словаря
    5. Ты уже в темплейте можешь гонять словарь циклом или напрямую упоминая его через {{ name }}

    P.S. то что в урле указано как name="list_albums' нужно для формирования ссылки на темплейте при помощи функции {% url 'list_albums' %}. Ты на темплейте можешь вставить ссылку вызвав её по имени которое ты вписал в name. Они рекомендуют это использовать что бы не формировать ссылку руками, так как в случае изменения урла тебе надо пройти по всем темплейтам и все везде поменять.

    И я хочу добавить что в джанго я сам нубас, и пока я не начал читать документацию я тоже как ты гуглил и искал ответы. Это очень не эффективно для развития. Лучше следовать гайду и понимать почему оно так работает. Например, мне понравился гайд на djangogirls, но щас с выходом 2.0 он устарел и в документации по 2.0 есть неплохой Tutorial хотя и не полный. Там непонятно что делать с авторизацией.
    Ответ написан
    Комментировать