Domanda

Accetto i dati tramite request.POST in questo modo:

if request.method == 'POST': 
    l = Location() 
    data = l.getGeoPoints(request.POST) 
    appid = settings.GOOGLE_API_KEY 

    return render_to_response('map.html',  
                               {'data': data, 'appid': appid}, 
                               context_instance=RequestContext(request)) 

Accetta dati da una serie di caselle di input di testo chiamate modulo-0-posizione fino a modulo-5-posizione.

Quello che voglio aggiungere è un controllo per assicurarmi che request.POST contenga dati in uno qualsiasi di questi campi di input.Penso che il mio problema sia che non conosco la terminologia corretta per descriverlo in Django.

So come farlo in PHP:cerca all'interno di $_POST affinché almeno uno di questi campi non sia vuoto, ma non riesco a trovare la risposta giusta cercando su Google.

Se non trovo alcun dato in quei campi di input, voglio reindirizzare l'utente alla pagina principale.

È stato utile?

Soluzione

Hai pensato di usare Le forme di Django?? È possibile contrassegnare i campi come "richiesti" quando si definisce un modulo e Django si occuperà della convalida se detti campi hanno dati in essi al momento della presentazione. Fanno anche altri tipi di validazione.

Altri suggerimenti

if request.method == 'POST' and request.POST:
       # Process request

request.post sarà falso se la richiesta non contiene dati.

Con gli oggetti di richiesta Django, i dati post vengono archiviati come un dizionario, quindi se conosci le chiavi nel dizionario, puoi cercarli e verificare se sono vuoti o no. Dai un'occhiata a questi due collegamenti per maggiori dettagli:

http://docs.djangoproject.com/en/dev/ref/request-response/#attributes http://docs.djangoproject.com/en/dev/ref/request-response/#querydict-objects

E, ad esempio, quando hai il tuo oggetto di richiesta e sai di avere un tasto/var chiamato "modulo-0-location", potresti fare:

if request.POST.get('form-0-location'):
    print 'field is not None >> %s' % request.POST.get('form-0-location'')

Secondo il suggerimento di usare le forme django. Perché non sfruttare le forme di django quando usi Django?

Progetta una forma rapida che corrisponde ai campi attualmente che hai sulla pagina. Caricare il modulo con request.POST dati e utilizza form.is_valid() Per determinare se il modulo è valido o meno.

request.POST restituisce un tipo di QueryDict (che estende la superclasse Dictionary).

Ciò significa che puoi scorrere le chiavi in ​​questo dizionario (tutti i parametri in POST) e restituire false quando ne vedi uno vuoto

(per la digitazione request.POST):

if key k has invalid value (i.e. None or something else):
   return false
return true

Potresti anche provare a provare qualcosa di simile

if len(request.POST['data'])<1:
    do something if empty
else:
    do something if has data
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top