2016-05-24 13 views
-1

Ich habe Schwierigkeiten, die richtige Abfrage für mein Projekt zu bekommen. Wie kann ich die letzte Lektion in einem bestimmten Modul erhalten? Ich beabsichtige, eine Nachricht an einen Benutzer zu zeigen, wenn er die letzte Lektion eines Moduls abgeschlossen hat, d. H. "Herzlichen Glückwunsch, Sie haben Modul abgeschlossen blah bla bla", diese Nachricht muss nur geflasht werden, sobald die letzte Lektion eines Moduls abgeschlossen ist.Letztes Element Ich bin ein Django Fremdschlüssel

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 

Antwort

1

Sie sollten filter alle Lessons von Lesson.module. Dann order byLesson.position (rückwärts).