关于在模型中关联数据的新手Django问题。
我有三张桌子,CarMake,CarModel和Driver。
CarMake有几个汽车品牌。
CarModel拥有各品牌的几种型号。
我的第一个问题是如何将每辆车的多个车型联系起来 在models.py类中的品牌?
其次,在管理页面(最终通过视图)我该怎么做 将这些汽车制造和汽车模型与司机联系起来。所以在Admin中 如果我创建一个新驱动程序,我选择driver_name,然后从a中选择 下拉列表car_make,然后根据Make I selected,选择 从汽车模型的下拉列表中。
例如在admin中:
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'''
答案 0 :(得分:1)
查看Django Models Documentation,了解如何创建models.py
。我看到了你在这个文件中得到的确切想法,但是你要结合两件事。
models.py
应包含实体及其连接方式 实体及其可能的实例实体。 models.py
定义数据库结构不其内容 - 这一点很重要。
作为一些指示:
CarModel
应该有ForeignKey
个CarMake
表。这将定义汽车与谁之间的关系。然后,您需要定义另一个字段来保存该汽车的模型。我不确定如何强制只从某个制造商那里选择汽车(但这本身就是一个问题) - 也许这应该是前端逻辑?Driver
还应该ForeignKey
CarModel
来定义此驱动程序所驱动的汽车。 注意一个司机可以驾驶多少辆汽车?你需要决定他们是否只能驾驶一辆或是否可以开多辆。在继续之前,请仔细阅读文档,它将为您提供更多帮助,并且始终是最佳起点。
答案 1 :(得分:0)
根据您的描述,听起来您想要CarMake和CarModel之间的一对多关系。例如一个CarMake可以有多个CarModel,但是一个CarModel 不能有多个CarMake。以下是一些可以帮助您入门的代码:
# In app/models.py
class CarMake(models.Model):
name = models.CarField(max_length=30)
class Car(models.Model):
model = models.CarField(max_length=30)
make = models.ForeignKey(CarMake)
class Driver(models.Model):
driver_name = models.CharField(max_length=120)
car = models.ForeignKey(Car)
创建制作模型
make = CarMake(name='Toyota')
make.save()
car = Car(make=make, model='Avalon')
car.save()
在管理中心注册
# in app/admin.py
from django.contrib import admin
from app.models import CarMake, CarModel, Driver
admin.site.register(CarMake)
admin.site.register(CarModel)
admin.site.register(Driver)