v
July 3, 2019, 4:14 p.m.

Редирект с page=1 на главную

Добрый день.
Пытаюсь сделать редирект с site.ru/?page=1 на просто site.ru/ и ничего не выходит... я уж и так и сяк. Если страница не существует, то с этим нет проблем, а тут не выходит(( Помогите

2

Do you like it? Share on social networks!

10
Evgenii Legotckoi
  • July 3, 2019, 11:16 p.m.

Добрый день

Вы можете попробовать в get методе попробовать обработать данную ситуацию следующим образом.

  1. def get(self, request, *args, **kawrgs)
  2. if int(self.request.GET.get('page')) == 1:
  3. return redirect(self.request.path)
    v
    • July 4, 2019, 4:20 p.m.
    • (edited)

    Наверно я туп((
    Или я не вкуриваю куда и что добавлять))
    Исправил опечатки, добавил код в views, но ничего не происходит. В urls что то надо добавлять?

    1. def get(self, request, *args, **kwargs):
    2. if int(self.request.GET.get('page')) == 1:
    3. return redirect(self.request.path)

    Django 2.2.3

      Evgenii Legotckoi
      • July 4, 2019, 4:21 p.m.

      покажите urls и views, а также перезапустите проект, если у вас DEBUG = False

        v
        • July 4, 2019, 4:37 p.m.

        DEBUG = True

        1. urls.py
        2.  
        3. from django.conf import settings
        4. from django.conf.urls.static import static
        5. from django.contrib import admin
        6. from django.urls import path
        7. from .views import index
        8. from .views import save_detail
        9. #from .views import redirect_index
        10. #from .views import get
        11. from core.views import *
        12.  
        13.  
        14. urlpatterns = [
        15. path('', index, name='index'),
        16. path('save-<slug:slug>.html', save_detail, name='save_detail_url'),
        17. #path('?page=1', redirect_index),
        18. #path('page=1', get),
        19. path('admin/', admin.site.urls),
        20. ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
        1. views.py
        2.  
        3. from django.shortcuts import render
        4. from core.models import Save
        5. from django.core.paginator import Paginator
        6. from django.shortcuts import get_object_or_404
        7.  
        8.  
        9. from django.shortcuts import redirect
        10.  
        11.  
        12. def index(request):
        13. saves = Save.objects.all().order_by('-pub_date')
        14. paginator = Paginator(saves, 22)
        15.  
        16. page = request.GET.get('page', 1)
        17. saves = paginator.get_page(page)
        18. return render(request, 'index.html', context={'saves': saves})
        19.  
        20.  
        21. def save_detail(request, slug):
        22. #saves = Save.objects.get(slug__iexact=slug)
        23. saves = get_object_or_404(Save, slug__iexact=slug)
        24. return render(request, 'save.html', context={'saves': saves})
        25.  
        26.  
        27. def get(self, request, *args, **kwargs):
        28. if int(self.request.GET.get('page')) == 1:
        29. return redirect(self.request.path)
          Evgenii Legotckoi
          • July 4, 2019, 4:42 p.m.

          А понятно... вы вместо Class Based View (CBV) используете просто функции.

          Ну напишите так

          1. def index(request):
          2. if int(self.request.GET.get('page')) == 1:
          3. return redirect(self.request.path)
          4.  
          5. saves = Save.objects.all().order_by('-pub_date')
          6. paginator = Paginator(saves, 22)
          7.  
          8. page = request.GET.get('page', 1)
          9. saves = paginator.get_page(page)
          10. return render(request, 'index.html', context={'saves': saves})
            v
            • July 4, 2019, 4:58 p.m.

            NameError: name 'self' is not defined

              Evgenii Legotckoi
              • July 4, 2019, 4:58 p.m.
              1. def index(request):
              2. if int(request.GET.get('page')) == 1:
              3. return redirect(request.path)
              4.  
              5. saves = Save.objects.all().order_by('-pub_date')
              6. paginator = Paginator(saves, 22)
              7.  
              8. page = request.GET.get('page', 1)
              9. saves = paginator.get_page(page)
              10. return render(request, 'index.html', context={'saves': saves})
                v
                • July 4, 2019, 5:01 p.m.

                TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

                  Evgenii Legotckoi
                  • July 4, 2019, 5:02 p.m.
                  • The answer was marked as a solution.
                  1. def index(request):
                  2. if request.GET.get('page') and int(request.GET.get('page')) == 1:
                  3. return redirect(request.path)
                  4.  
                  5. saves = Save.objects.all().order_by('-pub_date')
                  6. paginator = Paginator(saves, 22)
                  7.  
                  8. page = request.GET.get('page', 1)
                  9. saves = paginator.get_page(page)
                  10. return render(request, 'index.html', context={'saves': saves})
                    v
                    • July 4, 2019, 5:10 p.m.

                    Огромное спасибо! Прям как в тех. поддержку свою проблему писал)) Даже как то не удобно было :( С зарплаты обязательно поддержу проект!

                      Comments

                      Only authorized users can post comments.
                      Please, Log in or Sign up
                      • Last comments
                      • AK
                        April 1, 2025, 11:41 a.m.
                        Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
                      • Evgenii Legotckoi
                        March 9, 2025, 9:02 p.m.
                        К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
                      • VP
                        March 9, 2025, 4:14 p.m.
                        Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
                      • ИМ
                        Nov. 22, 2024, 9:51 p.m.
                        Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                      • Evgenii Legotckoi
                        Oct. 31, 2024, 11:37 p.m.
                        Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup