【发布时间】:2015-06-10 14:18:17
【问题描述】:
如何让管理表单在 django 管理表单的下拉列表中显示外键值,而不是显示“表名对象”?我正在努力解决这个问题。
这是我的模型代码示例(都包含 catname 字段。catname 在 Parent 中是 PK,在 Child 中是 FK)。
Parent(models.Model):
catname = models.CharField(db_column='catname', primary_key=True, max_length=255, verbose_name="catname")
description = models.CharField(db_column='Description', max_length=255, blank=True, null=True)
class Meta:
managed = False
db_table = 'Parent'
verbose_name_plural = ('Parent')
#def __unicode__(self): return self.catname.catname
def __str__(self):
return '%s' % (self.catname)
class Child(models.Model):
description = models.CharField(db_column='VarDescription', max_length=255, blank=True, null=True)
cname = models.CharField(db_column='VarName', primary_key=True, max_length=255)
catname = models.ForeignKey(Parent, db_column='catname', blank=True, null=True)
def __unicode__(self):
return self.name
def child_cat(self):
return self.catname.catname
class Meta:
managed = False
db_table = 'Child'
verbose_name_plural = ('Child')
管理员看起来像:
from django.contrib import admin
from Library.models import Parent, Child
# Register your models here.
class ChildAdmin(admin.ModelAdmin):
list_display = ('cname','description','child_cat')
fields=('cname','description','child_cat')
search_fields = ('cname','description')
ordering = ('cname',)
admin.site.register(Child,ChildAdmin)
【问题讨论】:
-
能否发下相关型号和形式代码?
-
这是我的模型代码示例(都包含 catname 字段,catname 在 Parent 中是 PK,在 Child 中是 FK)。