• Как будет работать 2 домена на одном сервере?

    neqrotek
    @neqrotek
    В гугле смотрели? https://qna.habr.com/q/653867
    А лучше через shift-ctrl-f в pycharm ищите, по ключам - site \ domain и т.д.
    Ответ написан
    Комментировать
  • Как правильно работают Response в django?

    neqrotek
    @neqrotek
    Ищите в JS \ VUE \ React, любом способе отрисовки контента, который может читать json. То есть, копать надо не в django. То есть, вы ищите на бэке, а судя по запросу вам нужен фронт.

    Искать можно по ключевикам из серии "name" или "color"

    Как вариант, открыть весь проект в pycharm\vscode и глобальным поиском реверс сделать. В pycharm даже удобная штука есть в виде ctrl + клик по элементу исходник которого нужно найти (по коду на питоне).
    Ответ написан
    Комментировать
  • TELEBOT.Почему смешиваются данные при использовании бота несколькими пользователями?

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

    neqrotek
    @neqrotek
    Тут написано, как правильно собрать пагинацию. Смысл в том, что сам список "Product" должен участвовать в переходе между страницами. А тут связи нет.
    Как у меня получилось:
    views.py
    def product_list(request)
        category = None
        categories = Category.objects.all()
        products = Product.objects.filter(available=True)
        paginator = Paginator(products, 3)  # 12 posts in each page
        page = request.GET.get('page')
    
        if category_slug:
            category = get_object_or_404(Category, slug=category_slug)
            products = products.filter(category=category)
       
        try:
            products = paginator.page(page)
        except PageNotAnInteger:
            products = paginator.page(1)
        except EmptyPage:
            products = paginator.page(paginator.num_pages)
    
        return render(request,
                      'products/list.html',
                      {'category': category,
                       'categories': categories,
                       'products': products
                       'page', page})


    В месте где будет выдаваться блок:

    main.html
    {% for product in products %}
    {% endfor %}
    {% include "shop/pagination.html" with page=products %}


    И в шаблоне pagination.html:

    pagination.html
    <div class="pagination">
        <span class="step-links">
            {% if page.has_previous %}
                <a href="?page={{ products.previous_page_number }}">Назад</a>
            {% endif %}
            <span class="current">
                Страница {{ products.number }} из {{ products.paginator.num_pages }}.
            </span>
            {% if page.has_next %}
                <a href="?page={{ products.next_page_number }}">Вперед</a>
            {% endif %}
        </span>
    </div>


    Мое первое объяснение))
    Виталий выше правильно написал, только чтобы понять, пришлось перелопатить документацию, по ссылке выше.

    Чтобы работали страницы в категориях, надо все запихать в if

    views.py
    if category_slug:
            category = get_object_or_404(Category, slug=category_slug)
            products = products.filter(category=category)
            paginator = Paginator(products, 3)  # 12 posts in each page
            page = request.GET.get('page')
    
            try:
                products = paginator.page(page)
            except PageNotAnInteger:
                # If page is not an integer deliver the first page
                products = paginator.page(1)
            except EmptyPage:
                # If page is out of range deliver last page of results
                products = paginator.page(paginator.num_pages)
    Ответ написан