Ответы пользователя по тегу Django
  • Как использовать Django AutocompleteFilter через 2 relations?

    solotony
    @solotony Автор вопроса
    покоряю пик Балмера
    на SO мне подсказали решение - использовать не AutocompleteFilter а AutocompleteFilterFactory

    WorkplaceFilter = AutocompleteFilterFactory(
        'Workspace', 'user__workspace'
    )
    
    @admin.register(Chat)
    class ChatAdmin(models.ModelAdmin):
        list_filter = [WorkplaceFilter]
    Ответ написан
    Комментировать
  • Django CMS для образовательного проекта, какие плагины требуются?

    solotony
    @solotony
    покоряю пик Балмера
    Подойдёт. Но для того что бы все это заставить хорошо работать потребуется хорошо поработать.
    Ответ написан
    Комментировать
  • Как лучше оптимизировать SQL?

    solotony
    @solotony
    покоряю пик Балмера
    1) зачем нужен `select_related("gender", "categories")` ? ведь и то и другое не являются relations

    2) всегда ли gender="man" ?

    в итоге я бы сделал так

    GENDER_CATEGORIES = [
        ("men", 1),  
        ("men", 2),  
        ("men", 3)   
    ]
    
    from django.db.models import Q
    
    def catalog(request):
        filters = [Q(gender=gender, categories=category_id) for gender, category_id in GENDER_CATEGORIES]
        query = Q()
        for q_filter in filters:
            query |= q_filter
    
        products = Products.objects.filter(query).only("id", "title", "price", "image")
    
        products_by_category = {category[1]: [] for category in GENDER_CATEGORIES}
        for product in products:
            for gender, category_id in GENDER_CATEGORIES:
                if product.gender == gender and product.categories == category_id:
                    products_by_category[category_id].append(product)
                    break
    
        context = {"products_by_category": products_by_category}
        return render(request, 'catalog.html', context)


    ну и еще в тапл добавить имя 3-м параметром
    Ответ написан
  • Как реализовать такую структуру данных?

    solotony
    @solotony
    покоряю пик Балмера
    class Author(models.Model):
        name = models.CharField(max_length=100)
        # Другие поля автора
    
    class Publication(models.Model):
        title = models.CharField(max_length=100)
        # Другие поля публикации
        authors = models.ManyToManyField(Author, through='Affiliation')
    
    class Affiliation(models.Model):
        author = models.ForeignKey(Author, on_delete=models.CASCADE)
        publication = models.ForeignKey(Publication, on_delete=models.CASCADE)
        affiliation = models.CharField(max_length=100)
    Ответ написан
    Комментировать
  • Почему не работают стили в django?

    solotony
    @solotony
    покоряю пик Балмера
    Проблемы с применением стилей на веб-сайте Django могут иметь несколько причин. Вот несколько шагов для диагностики и решения проблемы:

    1. **Проверьте пути к статическим файлам:**
    - Убедитесь, что пути к статическим файлам, таким как CSS, JavaScript и изображения, указаны правильно в вашем HTML-коде. Проверьте, что файлы действительно существуют по указанным путям.

    2. **Проверьте настройки Django для статических файлов:**
    - Убедитесь, что в файле настроек Django (обычно `settings.py`) указаны правильные пути к статическим файлам. Настройки `STATIC_URL` и `STATIC_ROOT` должны быть сконфигурированы правильно.

    3. **Запустите сборку статических файлов:**
    - Если вы внесли изменения в статические файлы (например, CSS), убедитесь, что вы запустили сборку статических файлов с помощью команды `python manage.py collectstatic`. Это соберет все статические файлы в директорию, указанную в `STATIC_ROOT`.

    4. **Проверьте права доступа:**
    - Убедитесь, что файлы стилей имеют правильные разрешения доступа для чтения. Они должны быть доступны серверу для чтения.

    5. **Проверьте браузерный кэш:**
    - Браузер может кэшировать статические файлы. Попробуйте очистить кэш браузера и перезагрузить страницу.

    6. **Проверьте ошибки в консоли браузера:**
    - Откройте консоль разработчика вашего браузера (обычно F12 или Ctrl+Shift+I) и посмотрите, есть ли какие-либо ошибки во вкладке "Console". Ошибки JavaScript или CSS могут помочь выявить проблему.

    7. **Используйте `{% load static %}`:**
    - Убедитесь, что вы используете тег `{% load static %}` в начале HTML-шаблона для загрузки статических файлов.

    8. **Проверьте CSS-селекторы:**
    - Убедитесь, что CSS-селекторы, которые вы используете для применения стилей, верны и соответствуют элементам на вашей странице.

    9. **Проверьте синтаксис CSS:**
    - Проверьте синтаксис ваших CSS файлов на наличие ошибок. Неправильные правила CSS могут привести к игнорированию стилей.

    10. **Используйте инкогнито-режим браузера:**
    - Попробуйте открыть ваш сайт в режиме инкогнито или в другом браузере, чтобы убедиться, что проблема не связана с кэшем или настройками вашего основного браузера.

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

    solotony
    @solotony
    покоряю пик Балмера
    а каким образом кроме вебсокетов можно еще уведомить админа что к нему кто-то ломится ?

    я вижу примерно такую последовательность

    - новый пользователь коннектится к чату в "режиме запроса"
    - админу летит команда по вебсокету "пришел новый юзер"
    - он отвечает "принять" "отклонить"
    - нового юзера уведомляем и либо переводим в "полноценный режим" либо выкидываем
    Ответ написан
    Комментировать
  • Связанные выпадающие списки Django?

    solotony
    @solotony
    покоряю пик Балмера
    стандартными средствами это хорошо не сделать

    можно попробовать повесить на изменение каждого поля сохранение и соответственно каждый раз заново строить форму для обновленной модели.

    ну а если хотите хорший вариант - это писать индивидуальную страницу
    Ответ написан
    Комментировать
  • Почему на работе в офисе и удалёнке от Django Backend Developer требуют не только Django?

    solotony
    @solotony
    покоряю пик Балмера
    Просто потому что невозможно быть веб-разработчиком (пусть и чтосто бэкенд) и при этом не иметь представления о том что приходит на фронте. Если ты не знаешь ничего кроме Джанго - то скорее всего ты вообще ничего не знаешь, опыта у тебя нет и тратить время на тебя рекрутерам не хочется.
    Ответ написан
    Комментировать
  • Как превратить QuerySet в JSON?

    solotony
    @solotony
    покоряю пик Балмера
    используй values_list для QuerySet
    ну а потом конвертируй результат в JSON
    Ответ написан
    Комментировать
  • Подойдет ли Django для разработки интернет магазина?

    solotony
    @solotony
    покоряю пик Балмера
    написать то можно - вопрос зачем? судя по картинке все довольно стандартное - почему не подходит готовое решение на битриксе? трудоемкость (стоимость) разработки на джанге будет на порядок выше чем разработка на биртиксе.
    Ответ написан
    Комментировать
  • Какой тариф выбрать при размещении django проекта?

    solotony
    @solotony
    покоряю пик Балмера
    я размещаю простые сайты django на бегете - все подымается без проблем
    работает на всех тарифах
    Ответ написан
    Комментировать
  • Как в каждом проекте автоматически работать в PyCharm с тем версиями библиотек, которые прописаны в requirements.txt?

    solotony
    @solotony
    покоряю пик Балмера
    настраивать для каждого проекта свой питон (свой venv). создавать их можешь как в pycharm, так и из консоли.
    Ответ написан
    Комментировать
  • Не могу в админке Django сделать энтр(абзац) в поле (models.TextField)?

    solotony
    @solotony
    покоряю пик Балмера
    как ты выводишь текст ? используй в шаблоне фильтры linebreaks или linebreaksbr для отработки переносов строки

    по поводу wusiwug редактора (картинок) - его надо устанавливать дополнительно
    Ответ написан
    Комментировать
  • Что нужно написать в HTML шаблоне на джанго, чтобы при нажатии на кнопку выдавалась рандомная ссылка?

    solotony
    @solotony
    покоряю пик Балмера
    передавай в шаблон этот случайный id
    если тебе надо передавать во все шаблоны то можешь либо написать django template tag либо напиши context priocessor
    Ответ написан
    Комментировать
  • В каком порядке учить Django?

    solotony
    @solotony
    покоряю пик Балмера
    Я начинал c Джанго гёлз. А потом пошли уже сайты за деньги.
    Ответ написан
    Комментировать
  • Как в Django разместить два виджета по горизонтали?

    solotony
    @solotony
    покоряю пик Балмера
    fieldsets = ( ... )
    Ответ написан
    Комментировать
  • Как автоматически сгенерировать URL статьи?

    solotony
    @solotony
    покоряю пик Балмера
    вариант 1

    slug = models.SlugField()

    вариант 2

    pip install transliterate
    ...
    from transliterate import slugify
    Ответ написан
    Комментировать
  • Как сделать middleware только для нескольких роутов?

    solotony
    @solotony
    покоряю пик Балмера
    в декораторе есть хук process_view()

    либо используй
    from django.utils.decorators import method_decorator
    Ответ написан
    Комментировать
  • Получение списка значений поля для GenericForeignKey связи?

    solotony
    @solotony
    покоряю пик Балмера
    `usage` это не поле а ключ

    я думаю что так вот надо

    Report.objects.all().prefetch_related('usage')
    Ответ написан
  • Как правильно отфильтровать Django Queryset и применить annotate?

    solotony
    @solotony
    покоряю пик Балмера
    ошибка во втором потому что ты вначале ты фильтром отсекаешь всех остальных пользователей (кроме одного) и считаешь количество для него ожного

    разница в скорости будет, если количество участников будет большим.
    попробуй так:

    def get_queryset(self):
        qs = Chat.objects.filter(users__id=self.request.user.id).values_list('id')
        return Chat.objects.filter(id__in=qs).annotate(user_count=Count('users'))
    Ответ написан
    Комментировать