2016-05-09 4 views
0

私はモデルがあります:私は持っているように見えるしかしジャンゴフィルタ

@admin.register(Supplier) 
class SupplierAdmin(admin.ModelAdmin): 
    list_display = ('unique_id', 'name', 'last_updated') 
    ordering = ('unique_id',) 
    list_filter = ('payment_method__unique_id') 
    inlines = [PaymentMethodInline, ] 

class Supplier(models.Model): 
    unique_id = models.IntegerField(unique=True) 
    name = models.CharField(max_length=255, unique=True) 
    address = models.CharField(max_length=255, blank=True, null=True) 
    email = models.EmailField(blank=True, null=True) 
    telephone = models.CharField(max_length=15, blank=True, null=True) 

class PaymentMethod(models.Model): 
    unique_id = models.CharField(max_length=3) 
    supplier = models.ForeignKey(Supplier, null=True) 
    last_updated = models.DateTimeField(auto_now=True) 

私は支払方法のために取引先にフィルタを追加しようとするためにlist_filterが正しく指定されていないため、以下のエラーが表示されます。

<class 'etariff.admin.SupplierAdmin'>: (admin.E116) The value of 'list_filter[1]' refers to 'payment_method__unique_id', which does not refer to a Field. 
+0

unique_id' – Gocht

+0

'で' payment_method__unique_id'を交換してみてください支払い方法 – Yunti

+0

をしませUNIQUE_IDその後 'Supplier'は' PaymentMethod' – Gocht

答えて

1

関連するお支払い方法を使用するには、

注記アンダースコアはありません。後続のカンマをタプルにすることを覚えておいてください。

関連するお支払い方法のユニークIDを表示する場合は、自分でListFilterクラスを作成する必要があります。例については、the docsを参照してください。ただサプライヤーにフィルタリング

+0

あなたは 'カスタムを書いたのに向いてフィールド(FK)を持っている必要がありListFilter' 、または 'list_filter =( 'paymentmethod'、)'あなたにとって十分ですか? – Alasdair