Форум сайта python.su
0
Привет!
меня уже несколько дней мучает вопрос - “Можно ли формам работать с моделью, в которой есть ФК?”
вот модели:
class Client(models.Model):
name = models.CharField(max_length=50)
fname = models.CharField(max_length=50)
oname = models.CharField(max_length=50)
class Car(models.Model):
client = models.ForeignKey(Client)
marka = models.CharField(max_length=50)
nomer = models.CharField(max_length=6)
def __unicode__(self):
return u"%s" % self.nomer
class CarForm(forms.ModelForm):
client = forms.CharField()
marka = forms.CharField()
nomer = forms.CharField()
class Meta:
model = Car
Офлайн
2
anbuДа, может.
“Можно ли формам работать с моделью, в которой есть ФК?”
anbuКакого примера. Что вы хотите сделать?
можете тогда подсказать, как сделать форму для данного примера?
Офлайн
8
anbuНеправильное у Вас чувство. Вполне можно, более того, из-за удобной генерации форм из моделей джангу больше всего любят. Если вам просто нужно создать форму на основе моделей - то сделать это просто
у меня такое чувство, что нельзя..
class CarForm(forms.ModelForm):
class Meta:
model = Car
Офлайн
1
Уберите поле client из формы Вашего примера и сами посмотрите.
Офлайн
0
ziroспасибо)В этом случае будет создана форма со значениями полей для модели по умолчанию. Например для ForeignKey в Вашем случае будет select, для остальных полей - text. Переопределение полей, как у Вас написано, имеет смысл только, если Вы хотите, изменить какие-то характеристики поля формы, которые должны быть отличны от дефолтных, например определить специальные атрибуты поля ввода, стиль, максимально допустимая длина и т.д. В большинстве случаев переопределение не требуется.class CarForm(forms.ModelForm):
class Meta:
model = Car
ziro
Ну и client = forms.CharField() - это совсем неправильно.
Ferromanда, тут я ошибся) просто были другие формы, где я указал виджет SelectWidget(choices=..), а здесь, видимо, просто не вставил)
Уберите поле client из формы Вашего примера и сами посмотрите.
Офлайн