OK - Ich bin sicher, dass das Problem ist, dass ich ein grundlegendes Verständnis davon habe, wie Formulare in Django arbeiten, so dass 30.000 ft konzeptionelle Erklärungen willkommen sind, zusätzlich zu Code-Fixes!Problem, Django ModelForm innerhalb Modal zu arbeiten
Ich versuche, meine Website von (meist) einer einzigen Ansicht (und einzelne Vorlage), mit modalen Popups zum Anzeigen von Informationen (arbeiten) und zum Bearbeiten oder Hinzufügen (funktioniert nicht). Ich kann das Formular sehen, es ausfüllen und auf Senden klicken. An diesem Punkt schließt sich das Modal, aber es werden keine neuen Kurse in der Admin-Ansicht angezeigt.
Ich werde dies auf ein einziges Modell beschränken - meine einfachste - einstweilen:
models.py:
class Course(models.Model):
Name = models.CharField(max_length=30,unique=True)
Active = models.BooleanField(default=True)
def __unicode__(self):
return u'%s' % (self.Name)
views.py
def IndexView(request,Course_id,Section_id):
template_name = 'gbook/index.html'
print Course_id,Section_id
this_course = Course.objects.get(pk=Course_id)
active_courses = Course.objects.all().filter(Active=True).exclude(pk=Course_id)
section_list = Section.objects.all().filter(course=this_course)
if len(section_list) >1:
multi_section = True
else:
multi_section = False
active_section = Section.objects.get(pk=Section_id)
roster = Student.objects.all().filter(sections__in=[active_section])
announcement_list = Announcement.objects.all().filter(sections__in=[active_section])
courseaddform = CourseAddForm()
context = {'active_courses':active_courses, 'this_course': this_course,
'active_section':active_section, 'section_list':section_list,
'roster':roster, 'multi_section':multi_section,
'announcement_list':announcement_list, 'courseaddform':courseaddform}
return render(request,'gbook/index.html', context)
forms.py
class CourseAddForm(forms.ModelForm):
class Meta:
model = Course
fields = ['Name', 'Active']
Vorlagen/Index .html
...
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="glyphicon glyphicon-cog" aria-hidden="true"></span><span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a data-toggle="modal" data-target="#SectionRosterModal">Roster</a></li>
<li><a data-toggle="modal" data-target="#AnnouncementModal">Announcements</a></li>
<li><a data-toggle="modal" data-target="#CourseAddModal">CourseAdd</a></li>
</ul>
</li>
...
<!-- COURSE ADD MODAL -->
<div class="modal fade" id="CourseAddModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header" style="padding:5px 10px;">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4>Add Course</h4>
</div>
<div class="modal-body" style="padding:10px 10px;">
<form data-parsley-validate method="post" id="courseaddform" action="" enctype="multipart/form-data"
data-parsley-trigger="focusout">
{% csrf_token %}
{{ courseaddform.as_p }}
<p id="login-error"></p>
<input type="submit" class="btn btn-info submit" name="AddCourse" value="Add Course" />
</form>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
...
Ich denke, dass es angeblich irgendwo in ein POST
Befehl sein, aber ich hier nicht wirklich einen guten Griff auf den Prozess haben. Danke für die Hilfe!
was ist das eigentliche Problem hier? Es funktioniert nicht, wenn Sie auf "Senden" klicken. oder zeigt es nicht das Formular an? – nkhumphreys
Das Formular wird angezeigt. Wenn ich klicke, schließt sich das Modal, aber nichts passiert (keine zusätzlichen Kurse in der Admin-Ansicht) – DeltaG