Ich bin neu in Django und ich lerne immer noch die Seile. Ich habe die folgende Vorlage, mit der der Benutzer mehrere Kontrollkästchen auswählen kann. Jetzt möchte ich, dass diese Optionen an einen neuen URL-Pfad übergeben werden, nachdem der Benutzer eine Schaltfläche gedrückt hat. Wenn ich das falsch mache, lassen Sie es mich wissen und geben Sie einen Vorschlag.Übergeben Sie mehrere Kontrollkästchen Auswahl in einer Vorlage zu einem Formular
<div class="container">
<div class="row">
<div class="col">
<h3>Financial</h3>
<ul>
{% for app in fingrouplist %}
<li><input type="checkbox" name="request_reports" value ="{{app.report_id}}" > {{ app.report_name_sc }}</li>
{% endfor %}
</ul>
</div>
<div class="col">
Wie würde ich das Ergebnis meines Kontrollkästchen auf REPORT_ID zu einer neuen Form und habe es mit diesen Elementen gefüllt pre-pass nach meiner Eingabe Schlagen/Submit-Button.
</br></br>
<input class="btn btn-primary" type="button" value="Request Access">
Unten ist meiner Meinung nach und wie Sie ich viel mehr grouplists sehen werden, die alle nutzen REPORT_ID und ich möchte alle sie an die Form weitergegeben werden, die auf der Grundlage dieser Kontrollkästchen erzeugt wird.
def profile(request):
owner = User.objects.get (formattedusername=request.user.formattedusername)
reportdetail = QVReportAccess.objects.filter(ntname = owner.formattedusername, active = 1).values('report_name_sc')
reportIds = QVReportAccess.objects.filter(ntname = owner.formattedusername).values_list('report_id', flat=True)
reportaccess = QvReportList.objects.filter(report_id__in= reportIds).values_list('report_name_sc', flat = True)
reportGroups = QVReportAccess.objects.filter(ntname = owner.formattedusername).values_list('report_group_id', flat=True)
reportlist = QvReportList.objects.filter(~Q(report_id__in= reportIds)).exclude(active=0)
allreportgrouplist = QvReportList.objects.filter(~Q(report_id__in= reportIds)).filter(report_group_id = 100)
bhreportgrouplist = QvReportList.objects.filter(~Q(report_id__in= reportIds)).filter(report_group_id = 200)
cereportgrouplist = QvReportList.objects.filter(~Q(report_id__in= reportIds)).filter(report_group_id = 500)
finreportgrouplist = QvReportList.objects.filter(~Q(report_id__in= reportIds)).filter(report_group_id = 600)
careportgrouplist = QvReportList.objects.filter(~Q(report_id__in= reportIds)).filter(report_group_id = 800)
pireportgrouplist = QvReportList.objects.filter(~Q(report_id__in= reportIds)).filter(report_group_id = 1100)
screportgrouplist = QvReportList.objects.filter(~Q(report_id__in= reportIds)).filter(report_group_id = 1200)
dssreportgrouplist = QvReportList.objects.filter(~Q(report_id__in= reportIds)).filter(report_group_id = 1300)
psgreportgrouplist = QvReportList.objects.filter(~Q(report_id__in= reportIds)).filter(report_group_id = 1400)
othreportgrouplist = QvReportList.objects.filter(~Q(report_id__in= reportIds)).filter(report_group_id = 99999)
print(reportdetail)
args = {'user':owner, 'applicationaccess':reportaccess, 'applicationlist':reportlist, 'bhgrouplist':bhreportgrouplist, 'cegrouplist':cereportgrouplist, 'fingrouplist':finreportgrouplist
, 'cagrouplist':careportgrouplist, 'pigrouplist':pireportgrouplist, 'scgrouplist':screportgrouplist, 'dssgrouplist':dssreportgrouplist, 'psggrouplist':psgreportgrouplist
, 'othgrouplist':othreportgrouplist, 'allgrouplist':allreportgrouplist}
return render(request, 'accounts/profile.html', args)
Muss ich Bibliotheken für Ajax oder Jquery hinzufügen? Gibt es einen effizienteren Weg mit nur Django und Formen? Ich sehe nicht, wo es die Form bevölkert. – student101
Ja, Sie müssen die JQuery-Bibliothek einschließen. Mit dieser Übung verwenden Sie überhaupt keine django-Formulare, stattdessen verwenden Sie eine Ansicht. was ich posten werde. Möglicherweise müssen Sie weitere Schritte zur Verarbeitung des CSRF-Tokens ausführen. Das ist jedoch nicht zu schwer. Ich glaube, dass Dinge wie Front-End mit JS viel einfacher zu machen sind als eine Django-Form. Natürlich können Sie versuchen, beide –
Ich habe Probleme, wenn der POST durch Drücken der Taste auf meiner Profilseite auftritt, ändert sich meine URL nicht Requestaccess. Ich sehe, dass die Post-Anfrage zu accounts/requestaccess geht, aber wenn ich versuche, die request.POST.get oder getlist zu drucken, ist es None oder eine leere Liste. Ich habe hier einen neuen Thread gestartet: https://stackoverflow.com/questions/47317352/ajax-call-not-being-passed-post-request-shows-as-none – student101