我使用Django 1.6并通过JSON夹具加载一些初始数据 例如
{
"model": "myapp.field",
"pk": 1,
"fields": {
"name": "ABC 100"
}
}
如何在Django管理页面上指定我不想用于这些字段的字符串表示?目前,我的下拉菜单默认显示" Abc 100"。有没有办法改变这个?
修改
我知道您通过__unicode__
方法定义字符串表示,并且您可以使用选项明确定义它们。我想知道是否有一种方法可以明确地定义字符串表示(比如使用选择)但是使用fixtures。因此,我的models.py文件中的定义不是硬编码的。
答案 0 :(得分:1)
您可以使用admin.py
参数定义models.py
中__unicode__
页面中显示的字符串表示形式。这是一个简单的代码示例:
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)