0
votes

Django Paginator Page Retour Nothype

Je fais une recherche simple avec Django et utilise la construction de pagination pour paginer les résultats et je reçois cette erreur lorsque je clique sur la page suivante pour afficher les résultats de la page suivante, int () l'argument doit être une chaîne, un octet objet ou un numéro, pas 'non constitué' Je ne sais pas ce qui le causent, voici le code, q est la chaîne de requête xxx


1 commentaires

Pourriez-vous montrer un exemple de demande que vous faites, c'est-à-dire l'URL complète que vous visitez pour rencontrer ce problème?


3 Réponses :


0
votes

in demande.get.get ('q') Il n'en retournera aucun si q n'est pas transmis comme un parm dans l'appel GET.

Modification de la modification de la requête ['q'] augmentera une exception si q n'est pas transmis


1 commentaires

Merci pour votre réponse Mathews, je l'ai changée à demander.get ['Q'] mais il augmente et MultivaluedickeyError at / résultat / 'q'



0
votes

Voici un exemple de fonctionnement avec module de paginateur, pour les pages vides, etc.

from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger


def post_list(request): #list items
    queryset_list = Post.objects.all() #.order_by("-timestamp")

    query = request.GET.get("q")
    if query:
        queryset_list = queryset_list.filter(
            Q(title__icontains=query) |
            Q(content__icontains=query)


            ).distinct()

    paginator = Paginator(queryset_list, 10) # Show 25 contacts per page
    page_request_var = "page"
    page = request.GET.get(page_request_var)
    try:
        queryset = paginator.page(page)
    except PageNotAnInteger:
        # If page is not an integer, deliver first page.
        queryset = paginator.page(1)
    except EmptyPage:
        # If page is out of range (e.g. 9999), deliver last page of results.
        queryset = paginator.page(paginator.num_pages)
    context = {
        "object_list": queryset,
        "title": "Building stuff with code",
        "page_request_var" : page_request_var
    }
    return render(request, "post_list.html", context)


0 commentaires

0
votes

Essayez-le de la manière suivante

def result(request):
    try:
        q = request.GET.get('q')
        orders = Order.objects.filter(Q(flat_number=int(q)) | 
         Q(customer_contact=int(q)))
        paginator = Paginator(orders, 10) # Show 25 contacts per page
        page = request.GET.get('page')
        try:
            pots = paginator.page(page)
        except PageNotAnInteger:
            posts = paginador.page(1)
        except EmptyPage:
            posts = paginador.page(1)
        context['orders'] = post
        return render(request, 'main/results.html',context)


    except Exception as e:
        print('error is ', e)
        return HttpResponse(str(e))


0 commentaires