2012-04-05 41 views
0

我試圖做到這一點在Django

nvc = models.ForeignKey(Nvc) 
    slug = AutoSlugField(max_length=50, unique=True, populate_from=('channel_index','nvc__mac_address')) 
    channel_index = models.IntegerField()  
    ... 

其中雷士照明與現場MAC_ADDRESS和通道索引外鍵在auotslugfield populatefrom使用來自外鍵的屬性()是一個局部場

我的嘗試是基於所示的情況與在AutoSlugField(autoslugfield

# minimum date granularity is shifted from day to month 
slug = AutoSlugField(populate_from='title', unique_with='pub_date__month') 

「unique_with」的工作,但我得到這個錯誤

「NvcChannel」對象有沒有屬性「nvc__mac_address」

是有可能做什麼,我試圖做的?如果是這樣,我哪裏出錯了?

我看了看這個問題override save to execute code 並想出了這個

def save(self, *args, **kwargs): 
    if not self.pk: 
     self.slug = AutoSlugField(max_length=50, unique=True, populate_from=('channel_index',self.nvc.mac_address)) 
    super(NvcChannel, self).save(*args, **kwargs) 

回答

1

nvc__mac_address僅用於數據庫查詢(通常filter())。您正嘗試訪問檢索對象的字段,因此您應該使用nvcchannel.nvc.mac_address

+0

所以我應該使用db查找模型定義中的外鍵嗎? – michael 2012-04-05 18:26:31