我在管理面板中有一个关于外键的 Django 相关问题。我面临以下情况:
class Driver(models.Model):
name = models.CharField(max_length=200)
executable = models.CharField(max_length=200)
class Device(models.Model):
name = models.CharField(max_length=200)
bound_driver = models.ForeignKey(Driver)
class DriverAssignment(models.Model):
device = models.ForeignKey(Device)
driver = models.ForeignKey(Driver)
每个设备都需要有一个绑定(bind)的驱动程序(它使用)。 DriverAssignment 应该是显示哪个设备可以使用哪个驱动程序的表格。所以一个设备可以有多种可能的驱动程序可以绑定(bind)。现在我想在我的管理面板上有一个下拉菜单,显示特定设备的所有可能驱动程序以选择“bound_driver”。
我如何在 Django 中执行此操作?对于有经验的 Django 人来说,这可能是一件容易的事。我希望有人能给我提示,因为我是 Django 的新手。多谢!
最佳答案
对于 Django >1.8
使用 InlineModelAdmin (2.2 的文档)如那里所述:
模型.py
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
title = models.CharField(max_length=100)
管理员.py
from django.contrib import admin
class BookInline(admin.TabularInline):
model = Book
class AuthorAdmin(admin.ModelAdmin):
inlines = [
BookInline,
]
关于python - 管理员中的Django反向外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23428717/