Django表2字段访问器向后关系

时间:2014-10-02 20:19:52

标签: python django django-tables2

我有这种模型结构。 (我正在使用Django 1.7)

class Event(models.Model):
    publicID = models.CharField(max_length=128)

class Origin(models.Model):
    publicID = models.CharField(max_length=128)
    event = models.ForeignKey('Event', related_name='origin')
    time = models.ForeignKey(TimeQuantity)

class TimeQuantity(models.Model):
    value = models.DateTimeField(blank=False, null=False)   

我需要创建一个事件表,使用django_tables2,我正在尝试这种方式来显示原点时间,但我什么都没得到

class EventsTable(tables.Table):
    time = tables.DateTimeColumn(accessor='origin.time.value')

    class Meta:
        model = Event
        fields = ('time')

我不确定访问者,因为我可以有许多向后关系

由于

1 个答案:

答案 0 :(得分:1)

实际上,在这里我看到一个Event对象可以与多个Origin对象相关,每个对象都有一个Time对象。我不知道你是想要一个对象还是所有对象,但对于所有对象,你可以这样尝试:

class Event(models.Model):
    publicID = models.CharField(max_length=128)

    @property
    def time_data(self):
        origins= self.origin.all()

        return ' '.join([ str(x.time.value) for x in origins])


class EventsTable(tables.Table):
    time = tables.Column(accessor='time_data')

    class Meta:
        model = Event
        fields = ('time')