Skip to main content
 首页 » 编程设计

python之Django 模型。在多个模型类和管理中关联元组

2025年05月04日37bluestorm

关于在模型中关联数据的新手 Django 问题。

我有三个表,CarMake、CarModel 和 Driver。

CarMake 中有多个汽车品牌。

CarModel 有每个品牌的多个模型。

  • 我的第一个问题是如何关联每辆车的多个车型 models.py 类中的品牌?

  • 其次,在管理页面(最终通过 View )我如何 将这些汽车品牌和汽车型号与驾驶员相关联。所以在管理员中, 如果我创建一个新的驱动程序,我选择驱动程序名称,然后从 下拉列表 car_make,然后根据我选择的 Make,选择 来自汽车型号的下拉列表。

    例如在管理中:

      driver name =    "john"  
     
      driver car = -> Toyota    -> Avalon 
    
  • 第三,我如何选择多个汽车品牌和多个车型 每个司机。因此,如果驾驶员选择 Volkswagon 车型,他们可以从下拉列表中选择“高尔夫”和“帕萨特”作为他们的汽车。

这是我正在考虑的一些基本代码:

from django.db import models 
 
class CarMake(models.Model): 
    MAKE = ( 
        ('Ford'), 
        (''Toyota'), 
        ('Volkswagon'), 
    ) 
 
    car_make = models.CharField(choice=MAKE) 
 
class CarModel(models.Model): 
    MODEL = ( 
        ('Ford' 
            ('Focus'), 
            ('Explorer'), 
            ('F150'), 
        ) 
        ('Toyota' 
            ('Avalon'), 
            ('Highlander'), 
            ('Tundra'), 
        ) 
        ('Volkswagon' 
            ('Golf'), 
            ('Jetta'), 
            ('Passat'), 
        ) 
    ) 
 
    car_model = models.CharField(choice=MODEL) 
 
class Driver(models.Model): 
    driver_name = models.CharField(max_length=120) 
    driver_car = '''choose make and model''' 

请您参考如下方法:

查看 Django Models Documentation了解如何创建您的 models.py。我明白你在这个文件中得到的确切想法,但你将两件事结合起来。

models.py 应该包含实体及其连接方式 不 实体和这些实体的可能实例。 models.py 定义数据库结构而不是它的内容——这一点值得注意。

一些提示:

  • CarModel 应该有 CarMake 表的 ForeignKey。这将定义汽车与制造者之间的关系。然后您将需要定义另一个字段来保存该汽车的型号。我不确定如何强制只选择来自某个制造商的汽车(但这本身就是一个问题)- 也许这应该在前端逻辑中?
  • Driver 还应该有一个 CarModel 的 ForeignKey 来定义这个司机开的是什么车。 注意一个司机可以开多少辆车?您需要决定他们是只能驾驶一辆还是可以驾驶多辆。

在继续之前仔细阅读文档,它对您的帮助比其他任何东西都大,并且始终是最好的起点。