如何在 Django 管理中显示实际的外键 ID?

How to show the actual foreign key id in Django admin?

当我在管理员中查看 Bar 记录时,外键的下拉列表显示 Foo 的标题,而不是 Foo 的 ID。可以有多个名称相同的标题,因此这没有帮助。 我想在管理中查看 Bar 时查看 Foo 的 ID。

这是我的 models.py

from django.db import models


class Foo(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    title = models.CharField(max_length=255)

class Bar(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    foo = models.ForeignKey(Foo, on_delete=models.CASCADE)

这是我的 admin.py

from django.contrib import admin
from .models import Foo, Bar


class FooAdmin(admin.ModelAdmin):
    readonly_fields = ('id',)


class BarAdmin(admin.ModelAdmin):
    readonly_fields = ('id',)


admin.site.register(Foo, FooAdmin)
admin.site.register(Bar, BarAdmin)

将此添加到您的 模型

 class Bar(models.Model):
     created_at = models.DateTimeField(auto_now_add=True)
     foo = models.ForeignKey(Foo, on_delete=models.CASCADE)

      def __str__(self):
          return self.id