Python Django ModelAdmin是否可以在;加上「;及;更改“;页?
我正在使用Django 1.9设计一个数据库网站,在我的模型中,我有一个“特许经营”表和一个“项目”表 以下是我的模型:Python Django ModelAdmin是否可以在;加上「;及;更改“;页?,python,django,Python,Django,我正在使用Django 1.9设计一个数据库网站,在我的模型中,我有一个“特许经营”表和一个“项目”表 以下是我的模型: from django.db import models class franchise(models.Model): """Parent to all entires in item db""" id = models.AutoField(primary_key=True) name = models.CharField(max_length=2
from django.db import models
class franchise(models.Model):
"""Parent to all entires in item db"""
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=255)
class item(models.Model):
"""Core database containing all entries in db"""
id = models.AutoField(primary_key=True)
franchise = models.ForeignKey(franchise, on_delete=None)
title = models.CharField(max_length=255)
description = models.TextField()
正如您所看到的,“item”具有“特许经营”的外键
我的admin.py文件:
from django.contrib import admin
from db.models import *
# Displaying the franchise database
class FranchiseAdmin(admin.ModelAdmin):
list_display = ('name',)
admin.site.register(franchise, FranchiseAdmin)
# Displaying the core database
class ItemAdmin(admin.ModelAdmin):
# Get name of parent franchise
def get_franchise(self, obj):
return obj.franchise.name
# Columns to display
list_display = ('title', 'get_franchise', 'description')
admin.site.register(item, ItemAdmin)
“get_特许经营权”函数的作用是,我可以在列表页面上显示外键表中的“name”值。我希望在Django admin中的条目添加和更改页面中实现相同的功能
如何在“添加”和“更改”页面中显示外键值,以便在项目表中添加和更改行时可以看到父特许经营的“名称”?您似乎忘记了将
\uuuu str\uuuuuuuuu
方法(或用于python 2的\uuuuunicode\uuuu
添加到您的模型中。不需要创建特殊方法来只显示ForeignKey
s的值
class franchise(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=255)
def __str__(self): # __unicode__ for py2
return self.name
class ItemAdmin(admin.ModelAdmin):
list_display = ('title', 'franchise', 'description')
我们如何更改字段的标题?。这是可行的,但字段的标题仍然显示主键的名称。然后您必须创建自定义方法,如@99LIFES did,并为其设置
short_description
。有关管理员自定义的详细信息,请参阅。