gpt4 book ai didi

python - Django ModelAdmin能否在 "add"和 "change"页面显示外键字段?

转载 作者:行者123 更新时间:2023-11-28 18:32:17 26 4
gpt4 key购买 nike

我正在使用 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=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”有一个指向“franchise”的外键

我的 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_franchise' 使我可以在列表页面上显示外键表中'name' 的值。我希望在 Django 管理的条目添加和更改页面中实现相同的功能。

如何在“添加”和“更改”页面中显示外键值,以便在添加和更改项目表中的行时可以看到父特许经营权的“名称”?

最佳答案

您似乎忘记了将 __str__ 方法(或 __unicode__ 对于 python 2)添加到您的模型中。无需创建特殊方法来仅显示 ForeignKey 的值。

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')

关于python - Django ModelAdmin能否在 "add"和 "change"页面显示外键字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35807491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com