Django模型选择选项,填充其他模型实例中的字段

2024-09-27 17:29:45 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个模型车,它有一个field品牌,一个model owner有两个字段:name和Car_brand,而后者应该是Car instances品牌之一。我需要有一个表单,在这个表单中,用户会看到一个文本字段名和一个下拉选择选项,其中填充了汽车实例的所有品牌名称。我要怎样才能做到呢?在

这是我开始使用的代码。请随意更正。谢谢。在

在模型.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)

在表单.py在

^{pr2}$

Tags: namepy表单fieldmodelmodelscarlength
1条回答
网友
1楼 · 发布于 2024-09-27 17:29:45

您可能只需在您的Car模型上定义一个__unicode__方法,我认为它应该可以正常工作。正如Daniel提到的,表单可能会混淆,因为您已经覆盖了小部件。我可能错了,但我认为django自动呈现了表单元素上的属性,这些属性可用于样式设计。也许你不需要重写小部件。否则,可以显式指定表单字段:

class OwnerForm(ModelForm):
    car_brand = forms.ModelChoiceField(
        queryset=Car.objects.all(),
        widget=Select(attrs={'class': 'car_brand'}),
    )

    class Meta:
        model = Owner
        fields = ('name', 'car_brand')
        widgets = {
            'name': TextInput(attrs={'class': 'name'})
        }

顺便说一句,有什么原因没有CarBrand模型和与{}模型相关的外键字段?这将是一种更加规范化的数据建模方法。在

相关问题 更多 >

    热门问题