2017-09-11 103 views
0

我有幾個模型如下。Django管理員限制外鍵過濾器到表中的條目

class Department(models.Model): 
     id = models.CharField(max_length=100,primary_key=true) 
     name = models.CharField(max_length=100) 

class User(models.Model): 
    id = models.CharField(max_length=100) 
    dept= models.ForeignKey(Department,on_delete=models.SET_NULL,null=True) 

class UserDisplay(VersionAdmin): 
    list_display = ['id','dept'] 
    list_filter=['dept'] 

說我有大約100部門,只有3個用戶。如果我點擊用戶模型的Django管理面板上的過濾器,它將顯示所有100個部門。如何限制過濾器僅顯示此表所使用的3個部門?

+0

請檢查 - https://stackoverflow.com/questions/11660915/how-to-filter-data-queryset-in-django-admin-interface-by-string-length – anuragal

回答

1

您可以使用RelatedOnlyFieldListFilter此:

class UserDisplay(dmin.ModelAdmin): 
    list_display = ['id','dept'] 
    list_filter=[('dept', admin.RelatedOnlyFieldListFilter)] 

查看詳情here

+0

謝謝你會試試看。 –

+1

完美地工作,謝謝。 –