0

私はこれをやろうとしています

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

ここで、nvc はフィールド mac_address を持つ外部キーであり、チャネル インデックスはローカル フィールドです

私の試みは、AutoSlugField ( autoslugfield )の「unique_with」で動作することが示されているものに基づいています。

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

しかし、私はこのエラーが発生します

「NvcChannel」オブジェクトには属性「nvc__mac_address」がありません

私がやろうとしていることをすることは可能ですか?もしそうなら、どこで間違ったのですか?

私はこの質問を見て、コードを実行するために保存し 、これを思いつきました

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)
4

1 に答える 1

1

nvc__mac_addressデータベース検索専用です (通常は を使用filter())。取得したオブジェクトのフィールドにアクセスしようとしているので、使用する必要がありますnvcchannel.nvc.mac_address

于 2012-04-05T04:17:22.237 に答える