2012-02-04 15 views
0

私は2つのテーブルとそのモデルを与えました。外部キーとリンクされた別のテーブルのDjango管理インターフェイスフィルタ

mysql> SELECT gid, sk, source from datagen_gidskmap limit 10; 
+-----+------+----------+ 
| gid | sk | source | 
+-----+------+----------+ 
| 1 | 3829 | smsarena | 
| 2 | 623 | smsarena | 
| 3 | 1308 | smsarena | 
| 4 | 1747 | smsarena | 
| 5 | 1827 | smsarena | 
| 6 | 1218 | smsarena | 
| 7 | 2957 | smsarena | 
| 8 | 3468 | smsarena | 
| 9 | 2580 | smsarena | 
| 10 | 2579 | smsarena | 
+-----+------+----------+ 
10 rows in set (0.00 sec) 

class GidSkMap(models.Model): 
    gid = models.AutoField(primary_key=True) 
    sk = models.CharField(max_length=256) 
    source = models.CharField(max_length=64) 
    creation_date = models.DateTimeField(auto_now_add=True) 
    modification_date = models.DateTimeField(auto_now=True) 


    def __unicode__(self): 
     return u'%s' % self.gid 

    class Meta: 
     unique_together = ("sk", "source") 

mysql> SELECT id, gid_id, nm from datagen_crawlmeta limit 10; 
+----+--------+----------------------------+ 
| id | gid_id | nm       | 
+----+--------+----------------------------+ 
| 1 |  1 | votes      | 
| 2 |  1 | performance_rating   | 
| 3 |  1 | title      | 
| 4 |  1 | specs__Sound__Loudspeaker | 
| 5 |  1 | specs__Sound__3.5mm jack | 
| 6 |  1 | specs__Sound__Alert types | 
| 7 |  1 | specs__Sound__unknown0  | 
| 8 |  1 | specs__Features__Java  | 
| 9 |  1 | specs__Features__Messaging | 
| 10 |  1 | specs__Features__Colors | 
+----+--------+----------------------------+ 
10 rows in set (0.00 sec) 

class CrawlMeta(models.Model): 
    gid = models.ForeignKey(GidSkMap) 
    nm = models.CharField(max_length=256) 
    val = models.TextField() 
    modification_date = models.DateTimeField(auto_now=True) 

    def __unicode__(self): 
     return u'%s' % self.gid 

    class Meta: 
     unique_together = ("gid", "nm") 

Djangoの管理インタフェース、 にCrawlMetaモデルを見ながら私は「ソース」に基づいてフィルタしたいと思う(例:smsarena) アクセス可能なGIDを介して( GidSkMapのCrawlMetaとprimary_keyのforiegnキーです)。

ご協力いただければ幸いです。

答えて

0

list_filterはクエリーセットAPIスタイルフィールドのルックアップを受け入れます。この場合、次のように使用します。

class YourAdmin: 
    list_filter = ["gid__source", ... ] 
    list_display = ["gid_source", ... ] 
+0

ありがとうThomas。できます。テーブルにソース列を表示する方法はありますか?モデルで 'short_description'を使って追加しました。しかし、ソースでソートすることはできません。 –

+0

"list_display"に "gid__source"を追加して自動ソート可能にする必要があります。 – Thomas

関連する問題