Ich versuche, in meine Datenbank zu gehen und zu sehen, ob eine bestimmte Einreichung bereits eingereicht wurde und ob sie erneut eingereicht werden kann. Zur Zeit habe ich dieses Stück Code jedes Feld des Formulars Testen (ändert sich offensichtlich pro Feld, aber ich dachte, dass ich nur ein Feld der Einfachheit halber zeigen würde)Django Datenbank Anfragen. Duplikate in der Datenbank finden und verhindern, dass sie gesendet werden
if request.method == 'POST':
Cashtexts.objects.filter(cashTexts=request.POST['cashTexts']).exists() == False:
Dann, wenn es nicht existiert geht weiter und die sparen Einreichungen in die Datenbank. Wenn es wahr zurückgibt, geht es zu einer else-Anweisung, die dem Benutzer mitteilt, dass das, was er eingegeben hat, bereits eingegeben wurde. zuvor funktionierte diese Art von Sache, aber ich änderte einige Variablennamen und jetzt hörte es auf zu arbeiten. Ich habe den Code ein paar Mal durchgeblättert, also dachte ich, dass etwas mit dieser Art von Filter grundsätzlich nicht stimmt, aber es macht Sinn in meinem Kopf.
def submit_win(request):
if request.method == 'POST':
if Cashtexts.objects.filter(cashTexts=request.POST['cashTexts']).exists() or Cashtexts.objects.filter(superPoints=request.POST['superPoints']).exists() or Cashtexts.objects.filter(varolo= request.POST['varolo']).exists() or Cashtexts.objects.filter(swagbucks = request.POST['swagbucks']).exists() or Cashtexts.objects.filter(neobux = request.POST['neobux']).exists() or Cashtexts.objects.filter(topline=request.POST['topline']).exists() or Cashtexts.objects.filter(Paidviewpoint=request.POST['Paidviewpoint']).exists() or Cashtexts.objects.filter(cashcrate=request.POST['cashcrate']).exists() == False:
form = CashtextsForm(request.POST)
if form.is_valid():
form.save()
ref_create = Cashtexts.objects.filter(cashTexts=request.POST['cashTexts'])
return render_to_response('submitted_page.html', {'ref_create': ref_create})
else: #Error message reading wither you didnt insert codes or you enter the same code twice
error = 'That code has already been submitted'
ref_create = CashtextsForm()
return render_to_response('submit.html', {'ref_create': ref_create,'error':error}, context_instance=RequestContext(request))
else: #displays the page when the user asks to go to the submit page
ref_create = CashtextsForm()
return render_to_response('submit.html', {'ref_create': ref_create}, context_instance=RequestContext(request))
Auch wandte ich mich Cashtexts.objects.filter (cashTexts = request.POST [ ‚cashTexts‘]) intoa variabel und reichte es meine Vorlage, um zu sehen, was es zurückkehrt und es zurückkehrt Objekte, die haben sollten sagte die Aussage wahr. aber es schien sie einfach zu ignorieren und sie trotzdem einzureichen.
Ich könnte alle vorherigen Objekte löschen, die mit dem übereinstimmen, was sie bei der Einreichung eingegeben haben, aber das macht es weniger sicher und könnte dazu führen, dass Benutzer immer und immer wieder denken, dass sie es mehr bekommen. Ich würde lieber aufhören, bevor es passiert.
aus irgendeinem Grund funktioniert das nicht. Ich ließ die DB fallen und sync'd mit einem neuen und jetzt habe ich neuen Fehler, den es sagt Die Ansicht users.views.submit_win gab kein HttpResponse-Objekt zurück. wenn ein anderes für GET's das ungebundene Formular anzeigt. nicht sicher, warum das ist – city
Nun, ich kann nichts dazu sagen, ohne Ihre Ansicht Code. – marue
okay, ich habe die Ansicht für diese Seite hinzugefügt – city