Sorry for the stupid question, but what's an @property?

By the way, what I have now is below (there are also several other
models).

I will try doing it your way now, although I don't understand the
@property.

class Trip(models.Model):
    title = models.CharField(maxlength="500", blank=True)
    logbook_entry = models.TextField(blank=True)
    cave = models.ForeignKey(Cave,blank=True,null=True)
    pushing = models.BooleanField(blank=True,null=True)
    rigging = models.BooleanField(blank=True,null=True)
    derigging = models.BooleanField(blank=True,null=True)
    science = models.BooleanField(blank=True,null=True)
    prospecting = models.BooleanField(blank=True,null=True)
    cavers = models.ManyToManyField(Caver,blank=True,null=True)
    start_date_time = models.DateTimeField()
    end_date_time = models.DateTimeField(blank=True,null=True)
    def timeUnderground(self):
        return self.end_date_time-self.start_date_time
    def __str__(self):
        return self.title+' | '+self.start_date_time.strftime('%D')
    class Admin:
        pass

class QM(models.Model):
    finding_trip = models.ForeignKey(Trip, related_name='QMs_Found',
edit_inline=models.STACKED)
    killing_trip = models.ForeignKey(Trip, related_name='QMs_killed',
null=True,blank=True, edit_inline=models.STACKED)
    #the cave field is unneeded- go through trips
    #cave = models.ForeignKey(Cave, edit_inline=models.TABULAR,
num_in_admin=3)
    number_in_year = models.IntegerField(core=True)
    GRADE_CHOICES=(
        ('A', 'A: Large obvious lead'),
        ('B', 'B: Average lead'),
        ('C', 'C: Tight unpromising lead'),
        ('D', 'D: Dig'),
        ('X', 'X: Unclimbable aven')
    )
    grade = models.CharField(maxlength=1, choices=GRADE_CHOICES,
core=True)
    location_description = models.TextField(blank=True)
    nearest_station = models.CharField(maxlength=400,blank=True)
    completion_description = models.TextField(blank=True)
    comment=models.TextField(blank=True)
    def __str__(self):
        QMnumber=str(self.finding_trip.start_date_time.year)
+"-"+str(self.number_in_year)+self.grade
        Cave=str(self.finding_trip.cave)
        return str(QMnumber+" which is in cave "+Cave)
    class Admin:
        pass

On Jul 12, 1:35 am, J Meier <[EMAIL PROTECTED]> wrote:
> I might try setting up Trip without direct reference to the QMs, and
> QMs with two references to Trip:
>
> class Trip(models.Model):
>    ... trip stuff ...
>
> class QM(models.Model):
>     found_during = models.ForeignKey(Trip, related_name=''found_qms")
>     killed_during = models.ForeignKey(Trip, null=True, blank=True,
> related_name="killed_qms")
>     ... trip stuff ...
>
> and maybe a few convenience methods and properties:
>
> (in Trip):
> @property
> def live_qms(self): return self.found_qms.filter(killed_during=None)
>
> (in QM:)
> @property
> def status(self): return self.killed_during == None and "Live" or
> "Dead"
>
> -Jim
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to