Я пытаюсь сделать что-то довольно простое, но я новичок в Django. У меня установлена система викторины для эксперимента, который я запускаю.Получение информации обо всех связанных объектах в django
Соответствующие записи в models.py следуют:
class Flavor(models.Model):
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class Passage(models.Model):
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class PassageText(models.Model):
passage = models.ForeignKey(Passage)
flavor = models.ForeignKey(Flavor)
contents = models.TextField()
def __unicode__(self):
return "[%s#%s]" % (self.passage, self.flavor)
class Question(models.Model):
passage = models.ForeignKey(Passage)
text = models.TextField()
def __unicode__(self):
return "[%s#%s]" % (self.passage, self.text)
class AnswerOption(models.Model):
question = models.ForeignKey(Question)
text = models.TextField()
is_correct = models.BooleanField(default=False)
def __unicode__(self):
return "[%s#%s]" % (self.question, self.text)
class TestSubject(models.Model):
GENDER_CHOICES = (('M','Male'), ('F','Female'),)
EDUCATION_CHOICES = (('SH', 'Some high school'), ('HS', 'High school diploma'), ('SC', 'Some college'), ('CD', 'College degree'), ('MD', 'Master\'s degree'), ('PH','PhD or higher education'),)
GPA_CHOICES = (('1', '1.0-1.5'), ('2', '1.5-2.0'), ('3', '2.0-2.5'), ('4', '2.5-3.0'), ('5', '3.0-3.5'), ('6', '3.5-4.0'), ('7', '4.0-4.5'), ('8', '4.5-5.0'),)
ip = models.CharField(max_length=30)
completed = models.BooleanField(default=False)
created_time = models.DateTimeField(default=datetime.now)
time_used = models.IntegerField(default=0, help_text='number of seconds used for test')
age = models.PositiveIntegerField()
gender = models.CharField(max_length=2, choices=GENDER_CHOICES)
education = models.CharField(max_length=2, choices=EDUCATION_CHOICES)
school = models.CharField(max_length=200)
grad_year = models.PositiveIntegerField()
gpa = models.CharField(max_length=2, choices=GPA_CHOICES)
sat_verbal = models.PositiveIntegerField(blank=True)
sat_math = models.PositiveIntegerField(blank=True)
sat_writing = models.PositiveIntegerField(blank=True)
sat_overall = models.PositiveIntegerField(blank=True)
english_is_your_first_language = models.BooleanField()
kerberos_name_if_applying_for_900_credit = models.CharField(max_length=200, blank=True)
def __unicode__(self):
return "[%s#%s]" % (self.ip, self.created_time)
class TestSequence(models.Model):
subject = models.ForeignKey(TestSubject)
order = models.IntegerField(help_text='1..n')
pt = models.ForeignKey(PassageText)
time_used = models.IntegerField(default=0, help_text='number of seconds used for test')
def __unicode__(self):
return "[%s#%d]" % (self.subject, self.order)
class QuestionSequence(models.Model):
tseq = models.ForeignKey(TestSequence)
order = models.IntegerField(help_text='0..n')
question = models.ForeignKey(Question)
selectedanswer = models.ForeignKey(AnswerOption, blank=True, null=True, default=None)
def __unicode__(self):
return "[%s#%d]" % (self.tseq, self.order)
Я хочу, чтобы по существу есть страница, которая просто дает мне таблицу всех объектов TestSubject (и все их свойства), а также перечень которых проходы, которые они сделали, и количество вопросов, которые они получили в этом отрывке.
Вы ищете кого-нибудь, чтобы запрограммировать вам решение? С какими аспектами вашего вопроса вы столкнулись с наибольшей проблемой, является ли доступ к данным или представляет их пользователю? Ваш вопрос может быть более конкретным. –
Я не ищу кого-нибудь, чтобы закодировать мне решение, извините. Полагаю, я должен уточнить, о чем я не понимаю: я могу пропустить все объекты TestSubject в views.py или передать их список в шаблон, но если я прокручу их в шаблоне, я не понимаю, как это сделать как получить соответствующие отрывки и ответы для каждого тестового объекта. –