2012-04-05 7 views
0

に私はNVCがフィールドMAC_ADDRESSとのForeignKeyで、チャネルインデックスは、ローカルフィールド)(auotslugfieldのpopulatefrom中のForeignKeyから属性を使用してジャンゴ

あるこの

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

をやろうとしています私の試みは

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

autoslugfield)AutoSlugFieldに「unique_with」で動作するように示されているものに基づいて、しかし、私はこのエラーを取得している

「NvcChannel」オブジェクトには属性「nvc__mac_address」

が、それは私が何をしようとしています何をすることが可能であるがありませんか?もしそうなら、どこが間違っていましたか?

私はこの質問override save to execute code を見て、唯一の(通常はfilter()付き)データベース検索のためである。この

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を思い付きました。検索されたオブジェクトのフィールドにアクセスしようとしているので、nvcchannel.nvc.mac_address

+0

を使用する必要があります。モデル定義内で外部キーを参照することはできますか? – michael

関連する問題