2017-10-28 189 views
0

我創建了兩個Django模型,一個模型中的字段是另一個外鍵(如下所示)。在Django的管理頁面更改外鍵項目的名稱

class Units(models.Model): 
    name = models.CharField(max_length=10, primary_key=True) 
    symbol = models.CharField(max_length=5) 


class Targets(models.Model): 
    name = models.CharField(max_length=100) 
    unit = models.ForeignKey(MicroNutrientUnits) 
    ... 

這些模型然後通過admin.site.register註冊到管理網站。將項目添加到表格時目標單元正確地反映表格單元中的項目,但是用名稱的單元格對象代表每個條目。

如何在admin配置頁面的admin下拉菜單中設置名稱爲Units.name

回答

2

我開始玩管理屏幕時遇到了同樣的問題。我不知道是否有更好的方法來做到這一點,但我所做的是修改models.py文件,告訴我的類作爲默認字符串返回什麼。在你的情況下,我會做的是將以下內容添加到你的Units類定義中。

class Units(models.Model): 
    name = models.CharField(max_length=10, primary_key=True) 
    symbol = models.CharField(max_length=5) 

    def __str__(self): 
     return self.name 

這樣,當你使用外鍵鏈接表,Django會在下拉列表中顯示的每個單元的名稱,而不是僅僅詞「單位」一遍又一遍。

+0

在這種情況下,這很好用(因爲單位總是按名稱引用),但是我覺得必須有一種方法可以通過_admin.py_文件來實現。 –