【发布时间】:2014-03-20 10:36:53
【问题描述】:
假设我有一个模型 Car 具有字段品牌和模型所有者具有两个字段:name 和 car_brand,而后者应该是 Car 实例品牌之一。我需要有一个表单,其中向用户显示一个文本字段名称和一个下拉选择选项,其中填充了 Car 实例的所有品牌名称。我将如何实现这一目标?
这是我开始的代码。随意纠正。谢谢。
models.py
from django.db import models
class Car(models.Model):
brand = models.CharField(max_length=20)
class Owner(models.Model):
name = models.CharField(max_length=20)
car_brand = models.ForeignKey(Car)
forms.py
from django.forms import ModelForm, TextInput, Select
from app.models import Owner
class OwnerForm(ModelForm):
class Meta():
model = Owner
fields = ("name", "car_brand")
widgets = {
"name" : TextInput(attrs={"class" : "name"}),
"car_brand" : Select(attrs={"class" : "car_brand"}),
}
【问题讨论】:
-
为什么要覆盖小部件?默认的模型表单会为您提供您想要的。
-
我需要为每个字段定义类属性。
-
另一个问题是:当models.ForeignKey(Car)没有指定选择什么字段时,它怎么知道从Car中选择“品牌”字段进行选择?
标签: python django-models django-forms foreign-keys