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
3 Réponses :
in Modification de la modification de la requête demande.get.get ('q') code> Il n'en retournera aucun si q n'est pas transmis comme un parm dans l'appel GET. P>
['q'] code> augmentera une exception si q n'est pas transmis p>
Merci pour votre réponse Mathews, je l'ai changée à demander.get ['Q'] mais il augmente et MultivaluedickeyError at / résultat / 'q'
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)
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))
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?