2017-05-04 33 views
-1

模型我有模型日历:获取访问,而related_name

class Calendar(models.Model): 
    name = models.CharField(_('Name'), max_length=50) 
    active = models.BooleanField(default=True) 

这里是模型related_name:

class Base(models.Model): 
    calendar = models.ForeignKey(Calendar, related_name='base') 
    code = models.CharField(_('Code'), max_length=2, default='DE') 
    default = models.BooleanField(default=False) 

这是没有问题的,因为我可以通过访问日历:

base_ids = self.calendar.base.values_list('id', flat=True) 

但我有另一个没有related_name的模型:

class Post(models.Model): 
    calendar = models.ForeignKey(Calendar) 
    pub_date = models.DateTimeField(blank=True, null=True) 

我试着用:

post_id = self.calendar_set.themes.values_list('id', flat=True) 

,但它没有工作。

+0

有什么理由不添加related_name? –

+0

在上面的两个例子中,“self”是什么模型尚不清楚。什么是“主题”? – Alasdair

+0

self.calendar = Calendar @Alasdair – Mark

回答

0

从不任何需要添加related_name才能访问模型。 (你只有在需要才能添加一个冲突。)这里的默认值是post_set,这很好。

+0

谢谢@ daniel-roseman – Mark