Python 如何在django中使用一对多关系生成动态生成的表单
我正在尝试编写一个测验系统来学习django,用户可以在这个系统中添加测验。 我的模特看起来像Python 如何在django中使用一对多关系生成动态生成的表单,python,django,google-app-engine,Python,Django,Google App Engine,我正在尝试编写一个测验系统来学习django,用户可以在这个系统中添加测验。 我的模特看起来像 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.
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)
我的问题是如何创建表单+视图+模板,为用户提供一个页面来创建测验
到目前为止,我已经想出了这个。
观点:
模板(index.html)
请输入问题
{{xquick.as_table}
{{xquestion.as_table}
我怎么能在测验表格中有多个问题?到目前为止还不错,到目前为止,如果没有错误,您应该对呈现的表格有一个工作视图 现在您只需要在
create\u quick
视图中处理post数据
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()
更新:如果您要查找多个问题表单,那么您需要查看表单集,但是一个测验不只是包含一个问题。我要寻找的是一种在测验表单中包含多个问题的方法。刚刚更新了我关于同一问题的答案,您可以使用表单集获取多个表单,在此处找到答案
Please Enter the Questions
<form action="" method='post'>
{{xquiz.as_table}}
{{xquestion.as_table}}
<input type='submit'>
</form>
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()