Предположим, у меня есть модель автомобиля с маркой поля и владельцем модели, у которой есть два поля: имя и car_brand, тогда как последний должен быть одним из брендов автомобилей , Мне нужно иметь форму, в которой пользователю предлагается имя текстового поля и выпадающий выбор, заполненный всем фирменным наименованием экземпляров автомобилей. Как мне это достичь?Выбор варианта выбора Django, заполненный полями из других экземпляров модели
Вот код, который я начинаю с. Не стесняйтесь исправлять. Благодарю.
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"}),
}
Почему вы изменили свои виджеты? Форма модели по умолчанию предоставила бы вам именно то, что вы хотели. –
Мне нужно определить атрибуты класса для каждого поля. – jazzblue
Другой вопрос: как он узнает, чтобы выбрать поле «бренд» из автомобиля для выбора, когда модели. ForeignKey (Car) не указывает, какое поле выбрать? – jazzblue