Wie man dynamisch generierte Formulare mit einer zu vielen Beziehungen in django macht

Ich versuche, ein Quiz-System zu schreiben, um Django zu lernen, wo Benutzer das System hinzufügen können. Meine models sehen aus wie

from google.appengine.ext import db class Quiz(db.Model): title=db.StringProperty(required=True) created_by=db.UserProperty() date_created=db.DateTimeProperty(auto_now_add=True) class Question(db.Model): question=db.StringProperty(required=True) answer_1=db.StringProperty(required=True) answer_2=db.StringProperty(required=True) answer_3=db.StringProperty(required=True) correct_answer=db.StringProperty(choices=['1','2','3','4']) quiz=db.ReferenceProperty(Quiz) 

Meine Frage ist, wie schaffen Form + Ansichten + Vorlagen, um Benutzer mit einer Seite zu erstellen, um so weit zu erstellen, dass ich damit gekommen bin. Ansichten:

  • Initialisierung von MEDIA_ROOT vor jedem Django Test
  • Django import error - Kein Modul namens core.management
  • Füge anderen Feld als Auswahl an Fremdschlüssel, Django
  • Unbekannter Formatcode 'f' für Objekt vom Typ 'Unicode'
  • Python manage.py syncdb schlägt mit "falsch konfiguriert: Kein Modul namens 'psycopg2'
  • Extrahieren von Elementen aus einem QueryDict
  •  from google.appengine.ext.db.djangoforms import ModelForm from django.shortcuts import render_to_response from models import Question,Quiz from django.newforms import Form def create_quiz(request): return render_to_response('index.html',{'xquestion':QuestionForm(),'xquiz':QuizForm()}) class QuestionForm(ModelForm): class Meta: model=Question exclude=['quiz'] class QuizForm(ModelForm): class Meta: model=Quiz exclude=['created_by'] 

    Vorlage (index.html)

      Please Enter the Questions <form action="" method='post'> {{xquiz.as_table}} {{xquestion.as_table}} <input type='submit'> </form> 

    Wie kann ich mehrere Fragen im Quiz-Formular haben?

    One Solution collect form web for “Wie man dynamisch generierte Formulare mit einer zu vielen Beziehungen in django macht”

    So weit so gut, ab jetzt solltest du eine Arbeitsansicht mit den Formularen machen, wenn es keine Fehler gibt.

    Jetzt müssen Sie nur die Post-Daten in der create_quiz Ansicht behandeln

     if request.method == 'POST': xquiz = QuizForm(request.POST) quiz_instance = xquiz.save(commit=False) quiz_instance.created_by = request.user quiz_instance.save() xquestion = QuestionForm(request.POST) question_instance = xquestion.save(commit=False) question_instance.quiz = quiz_instance question_instance.save() 

    Update: Wenn du nach mehreren Frageformularen suchst, dann musst du Formulare betrachten, http://docs.djangoproject.com/de/dev/topics/forms/modelforms/#id1

    Python ist die beste Programmiersprache der Welt.