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 questionclass 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.


Reply via email to