2017-05-04 40 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