(r'^(?P<quiz_id>\d+)', QuizWizard.as_view(get_form_list)), the function get_form_list has no length
Here you're not calling get_form_list as a function, so you're treating it as a variable.
(r'^(?P<quiz_id>\d+)', QuizWizard.as_view(get_form_list(quiz_id))), Quiz_id is unknown.
Here you have corrected that issue, but you're not passing the correct variables.
def get_form_list(request, quiz_id):
You have defined get_form_list as taking in two variables, a request and a quiz_id, but when you call the function you're only passing it one variable.
The error you're getting "Quiz ID Unknown" is probably related to the fact that it's taking in your quiz_id and treating it like the response, and in that case you are not passing it a quiz_id.
-Nick
On Monday, April 1, 2013 7:17:13 AM UTC-7, Cody Scott wrote:
I am trying to make a simple quiz app.--I am trying to go to the URL /quiz/<quiz_id> and using the quiz_id which has a list of questions associated with the quiz id and create a list of forms to use in the model form.In the urls.py file I know you can pass a list of forms to be used, but I need to create the list of forms at runtime.I have tried passing the return value of a function as parameter but can't figure out the syntax.(r'^(?P<quiz_id>\d+)', QuizWizard.as_view(get_form_list)), the function get_form_list has no length (r'^(?P<quiz_id>\d+)', QuizWizard.as_view(get_form_ list(quiz_id))), Quiz_id is unknown. So I create a view and I create the form list inside the view and then call QuizWizard.as_view#views.py class QuizWizard(SessionWizardView): def __init__(self, **kwargs): self.form_list = kwargs.pop('form_list') return super(QuizWizard, self).__init__(**kwargs) def done(self, **kwargs): return render_to_response('done.html', { 'form_data':[form.cleaned_data for form in self.form_list], }) def get_form_list(request, quiz_id): quiz = Quiz.objects.get(id=quiz_id) question_forms = [] for question in quiz.questions.all(): choices = [] for choice in question.choices.all(): choices.append(choice) f = QuestionForm(instance=question) question_forms.append(f) #quiz_wizard = QuizWizard() return QuizWizard.as_view(form_list=question_forms )(request)But I am getting the errorissubclass() arg 1 must be a classMy issue is syntax either way I can't figure out how to call the QuizWizard.as_view(). Here are related files:#forms.pyclass QuestionForm(forms.ModelForm): class Meta: model = Question#urls.pyurlpatterns = patterns ('', url(r'^(?P<quiz_id>\d+)', 'quiz.views.get_form_list'), )#models.pyclass Choice(models.Model): choice = models.CharField(max_length=64) def __unicode__(self): return self.choice #create a multiple choice quiz to start class Question(models.Model): question = models.CharField(max_length= 64) answer = models.CharField(max_length= 64) choices = models.ManyToManyField(Choice) module = models.CharField(max_length= 64) def __unicode__(self): return self.question class Quiz(models.Model): name = models.CharField(max_length= 64) questions = models.ManyToManyField( Question) def __unicode__(self): return self.name Full Traceback: http://bpaste.net/show/0YNrLYJSdjdJ7Hea5q1c/
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
No comments:
Post a Comment