2016-05-24 7 views
-1

私は自分のプロジェクトに適切な質問を得るのに苦労しています。どのようにして特定のモジュールで最後のレッスンを受けることができますか?モジュールの最後のレッスンが完了したときにユーザーにメッセージを表示しようとしました。つまり、「おめでとうがモジュールを完了しました」というメッセージが表示されるのは、モジュールの最後のレッスンが完了した後でなければなりません。最後の要素i django foreignkey

class Module(models.Model): 
    DRAFT = 1 
    SUSPENDED = 2 
    PUBLISHED = 3 
    MODULE_STATUSES = (
     (DRAFT, _("Draft")), 
     (SUSPENDED, _("Suspended")), 
     (PUBLISHED, _("Published")) 
    ) 
    course = models.ForeignKey(Course) 
    name = models.CharField(verbose_name=_("Module Name"), max_length=200, help_text=_('The module title')) 
    description = models.TextField(verbose_name="Module Description", help_text=_("Module description")) 
    prerequisite = models.ForeignKey('self', verbose_name=_("Prerequisite Module"), null=True, blank=True, default=None) 
    slug = models.SlugField(editable=False, help_text=_('Unique identifier')) 
    status = models.IntegerField(verbose_name="Module Status", choices=MODULE_STATUSES, default=PUBLISHED) 
    position = PositionField(collection='course', default=0) 
    end_of_module = models.TextField(verbose_name=_("Module Summary"), default=None, null=True, help_text=_("Wrap and summarize this module")) 
    last_module = models.ForeignKey('self', verbose_name=_("Previous Module"), null=True, blank=True, default=None, related_name="previous_module") 
    next_module = models.ForeignKey('self', verbose_name=_("Next Module"), null=True, blank=True, default=None, related_name="the_next_module") 


    class Meta: 
     verbose_name_plural = "Modules" 

    def __unicode__(self): 
     return self.name 

    def get_absolute_url(self): 
     return reverse('module_detail', args=[self.slug]) 


class Lesson(models.Model): 
    module = models.ForeignKey(Module) 
    name = models.CharField(verbose_name=_("Lesson Title"), max_length=200, help_text=_('The lesson title')) 
    prerequisite = models.ForeignKey('self', verbose_name=_("Prerequisite Lesson"), null=True, blank=True, default=None) 
    content = models.TextField() 
    instructions_before = models.TextField(verbose_name=_("Instructions before exercise"), null=True, blank=True, default=None) 
    instructions_after = models.TextField(verbose_name=_("Instructions after exercise"), null=True, blank=True, default=None) 
    quizzes = models.ManyToManyField(Quiz, verbose_name=_("Quiz"), blank=True, related_name='lessons') 
    slug = models.SlugField(editable=False, help_text=_('Unique identifier')) 
    exercises = models.ManyToManyField(Exercise, verbose_name=_("Exercise"), blank=True, related_name='lesson_exercises') 
    position = PositionField(collection='module', default=0) 

    class Meta: 
     verbose_name = _("Lesson") 
     verbose_name_plural = _("Lessons") 

    def __unicode__(self): 
     return self.name 

答えて

1

あなたはLesson.moduleにより、すべてのLessonsfilter必要があります。次に、order byLesson.position(逆)。

関連する問題