Je suis un débutant Django, alors s'il vous plaît pardonnez-moi si c'est une question stupide. J'ai un formulaire de recherche qui contient plusieurs champs. Je souhaite seulement filtrer mon jeu de requête par les champs soumis qui ne sont pas vides. Comment je fais ça? Je suis conscient que vous pouvez chaîner des ensembles de queries et des objets Q, mais je ne sais pas comment éliminer les paires clé/valeur vides de la chaîne. Je sais que ce qui suit ne fonctionne pas, mais je pensais que cela pourrait donner un aperçu de ce que je cherche. Je vous remercie.Django Newbie - Avec une forme de champs multiples, comment puis-je éliminer les champs vides dans le jeu de requête
def art_search(request):
if request.method == 'GET':
form = AdvSearch(request.GET)
if form.is_valid():
art_name = form.cleaned_data['art_name']
art_number = form.cleaned_data['art_number']
artwork = Inventory.objects.filter(
if art_name is not u'':
Q(marketingname=art_name),
if art_number is not u'':
Q(marketingnumber=art_number)
)
return object_list(request, queryset=artwork)
else:
form = AdvSearch()
return render_to_response('art/search.html', {
'form': form,
})
J'ai écrit la même chose ci-dessous en premier:/ –
Ma réponse n'est pas complètement redondante. Il démontre la compréhension de la liste et dict(). Dziekuje :) – Koobz