在Django中通过fixture加载的数据的字符串表示

时间:2014-03-26 00:45:47

标签: python django django-admin

我使用Django 1.6并通过JSON夹具加载一些初始数据 例如

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

如何在Django管理页面上指定我不想用于这些字段的字符串表示?目前,我的下拉菜单默认显示" Abc 100"。有没有办法改变这个?

修改

我知道您通过__unicode__方法定义字符串表示,并且您可以使用选项明确定义它们。我想知道是否有一种方法可以明确地定义字符串表示(比如使用选择)但是使用fixtures。因此,我的models.py文件中的定义不是硬编码的。

1 个答案:

答案 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)