Cody,

This is a REALLY large list, so I recommend at this level of detailed question 
to StackOverflow.  It is a great resource and lots of Django developers like to 
show off and write your code for you sometimes :-).

Short answers:
There are ways to do custom inline forms:
http://stackoverflow.com/questions/1559690/custom-form-in-inline-form
and  filtering the queryset many-to-many choices:
http://stackoverflow.com/questions/291945/how-do-i-filter-foreignkey-choices-in-a-django-modelform

Also, you can just add a module foreign key reference to Choice as well and set 
a unique_together constraint on choice + module.  There are tradeoffs in all of 
these approaches.

Brian

Brian Schott
[email protected]



On Apr 10, 2013, at 4:30 PM, Cody Scott <[email protected]> wrote:

> I also want to have the same question in multiple quizzes. But the count for 
> each option should be dependent on the Quiz. I can do the same thing to Quiz 
> in the admin and add Questions Inline but then to add Choices to the 
> Questions I need to go to the question panel and there will be a lot of 
> duplicate questions and it will hard to tell which question is for which quiz.
> 
> I'm not even adding the Choices to the admin because there will be so many 
> duplicates, but I can't not add Question to the admin because I still need to 
> set choices.
> 
> Is there a way to Inline 2 steps? So that I can set Choices for a Question 
> when I am making a Quiz?
> 
> On Wednesday, 10 April 2013 13:38:14 UTC-4, Cody Scott wrote:
> I am trying to store questions in a database.
> I don't to set a fixed number of options for the question, some questions 
> could have 4 or 2 or 5.
> 
> Currently I am using a ManyToManyField to a table that just contains a 
> CharField.
> This works but creating an option requires making another Choice object and 
> selecting that, also when you want to select a Choice that has already been 
> created you have to use that little box in the admin and it doesn't scale 
> when you have hundreds of options.
> 
> Even if I wanted to have 4 options every time what is the recommended way 
> without having four CharFields?
> 
> class Choice(models.Model):
>     choice = models.CharField(max_length=255)
>     def __unicode__(self):
>         return self.choice
>  
> #multiple choice question
> class Question(models.Model):
>     question = models.CharField(max_length=64)
>     answer = models.CharField(max_length=255)
>     choices = models.ManyToManyField(Choice, related_name='questions', 
> verbose_name='options')
>     module = models.ForeignKey('Module', related_name='questions')
>  
>     times_correct = models.IntegerField(editable=False, default=0)
>     times_total = models.IntegerField(editable=False, default=0)
>  
>     def _get_average(self):
>         "Returns the average in percent"
>         if self.times_total != 0:
>             return (self.times_correct / float(self.times_total))*100
>         return 0.0
>     average = property(_get_average)
>  
>     def __unicode__(self):
>         return self.question
> 
> -- 
> 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 [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/django-users?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to