如何在Django后台仅显示外键的指定字段而非整个对象
Django后台Relationship表仅显示Part的part_id字段的解决方法
方法一:修改Part模型的__str__方法
这是最直接的方式,在models.py的Part类里重写__str__方法,让它返回part_id的值。这样不管哪里引用Part对象,都会显示part_id,包括Relationship后台的关联列。
代码示例:
class Part(models.Model): part_id = models.CharField(max_length=50, unique=True) # 你的其他字段... def __str__(self): return self.part_id
方法二:自定义Relationship的Admin显示字段
如果不想改动Part模型的__str__(比如其他场景需要保留原对象显示逻辑),可以在admin.py里给Relationship单独配置后台显示规则,直接指定展示关联Part的part_id。
代码示例:
from django.contrib import admin from .models import Relationship class RelationshipAdmin(admin.ModelAdmin): # 替换成你需要展示的其他字段,这里把原有的part列换成自定义的get_part_id list_display = ('id', 'get_part_id', 'vendor') def get_part_id(self, obj): return obj.part.part_id # 给这个自定义列设置表头名称 get_part_id.short_description = 'Part ID' admin.site.register(Relationship, RelationshipAdmin)
内容的提问来源于stack exchange,提问作者Mr Layman
相关产品推荐
相关产品推荐

