【发布时间】:2014-06-19 04:07:45
【问题描述】:
我在管理面板中有一个关于外键的 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)
每个设备都需要有一个绑定的驱动程序(它使用它)。 DriverAssignment 应该是显示哪个驱动程序可以被哪个设备使用的表。所以一个设备可以有多种可以绑定的驱动程序的可能性。现在我想在我的管理面板上有一个下拉列表,显示特定设备的所有可能驱动程序以选择“bound_driver”。
我如何在 Django 中做到这一点?对于一个有经验的 Django 人来说,这可能是一件容易的事。我希望有人能给我一个提示,因为我是 Django 的新手。非常感谢!
【问题讨论】:
-
我猜 ManyToManyField 是您正在寻找的答案。 docs.djangoproject.com/en/1.6/ref/models/fields/…
-
如果我错了,请纠正我。我认为这只会摆脱 DriverAssignment 模型(因为它将自动创建一个连接表)但是我如何在管理页面上显示它?如何让用户选择与设备具有多对多关系的驱动程序?非常感谢您的回答!
标签: python django django-models django-admin