2014-03-26 20 views
1

我使用Django 1.6並通過JSON燈具加載一些初始數據。
例如。在Django中通過燈具加載數據的字符串表示形式

{ 
    "model": "myapp.field", 
    "pk": 1, 
    "fields": { 
     "name": "ABC 100" 
    } 
} 

如何指定我不想用於Django管理頁面上的這些字段的字符串表示形式?目前,我的下拉菜單默認顯示「Abc 100」。有沒有辦法改變這個?

編輯:

我知道你定義通過__unicode__方法的描述,同時也可以使用選擇明確的定義。我想知道是否有一種方法可以明確定義字符串表示(如使用選項),但是使用fixtures。這樣定義就不會在我的models.py文件中硬編碼。

+0

你試過pytest?我正在根據你的迴應調查pytest,並通過它產生燈具。這可能是值得研究的,因爲它聽起來像是它解決了這個問題,並且是您需要的修復。 –

回答

1

您將使用__unicode__參數定義在models.pyadmin.py頁面中顯示的字符串表示形式。下面是一個簡單的代碼示例:

from django.db import models 

class Book(models.Model): 
    title = models.CharField(max_length=100) 

    def __unicode__(self): 
    return self.title 

您可以連接字符串,添加等功能,等等......到__unicode__功能。任何你可以在普通Python中做的事情。

如果你想一個字段作爲下拉列表中定義的選項列表,你會想用這樣的代碼來限制選擇:

# product contrast choices 
DARK = 'Dark' 
LIGHT = 'Light' 
CONTRAST_CHOICES = (
    (DARK, 'Dark'), 
    (LIGHT, 'Light'), 
    ) 
from django.db import models 

class Book(models.Model): 
    title = models.CharField(max_length=100) 
    contrast = models.CharField(_("Contrast"), max_length=25, choices=CONTRAST_CHOICES, blank=True) 
+0

謝謝。我應該更加明確。我意識到這兩個選擇。我想知道是否有一種方法可以明確定義字符串表示(如使用選項),但是使用fixtures。這樣定義就不會在我的models.py文件中硬編碼。 – kmc

相關問題