DjangoAdminの表形式のインライン内の外部キーのフィールドにアクセスしようとしています。
私の最善の努力にもかかわらず、私はそれを機能させることができないようです。私の現在のコードは次のとおりです。
class RankingInline(admin.TabularInline):
model = BestBuy.products.through
fields = ('product', 'account_type', 'rank')
readonly_fields = ('product', 'rank')
ordering = ('rank',)
extra = 0
def account_type(self, obj):
return obj.products.account_type
その結果:
'RankingInline.fields' refers to field 'account_type' that is missing from the form.
また、model__fieldメソッドを使用してみました。これは次のように使用しました。
fields = ('product', 'product__account_type', 'rank')
その結果:
'RankingInline.fields' refers to field 'product__account_type' that is missing from the form.
モデルは次のように定義されます。
class Product(BaseModel):
account_type = models.CharField(choices=ACCOUNT_TYPE_OPTIONS, verbose_name='Account Type', max_length=1, default='P')
class Ranking(models.Model):
product = models.ForeignKey(Product)
bestbuy = models.ForeignKey(BestBuy)
rank = models.IntegerField(null=True, blank = True)
class BestBuy(BaseModel):
products = models.ManyToManyField(Product, through='Ranking')
class BaseModel(models.Model):
title = models.CharField(max_length = TODO_LENGTH)
slug = models.CharField(max_length = TODO_LENGTH, help_text = """The slug is a url encoded version of your title and is used to create the web address""")
created_date = models.DateTimeField(auto_now_add = True)
last_updated = models.DateTimeField(auto_now = True)
私は何が間違っているのですか?