У меня есть разные модели:форм из моделей
Cars
Pictures (models.ForeignKey(Cars))
CarsOptions(models.OneToOneField(Cars))
Тогда я хочу, что пользователь может добавлять новые автомобили. Forms.py:
class NewCarsForm(ModelForm):
class Meta:
model = Cars
exclude = ('checked','user')
В views.py:
@login_required
def add_car(request):
form = NewCarsForm(request.POST or None)
if form.is_valid():
cmodel = form.save()
cmodel.save()
return redirect(profile)
return render(request, 'add_car.html', { 'form': form,})
У меня есть несколько вопросов (да, я читал this).
- Как вы можете видеть, пользователь может добавить только «автомобиль», а не фотографии и варианты. Как это сделать на одной странице в одной форме?
exclude = ('checked','user')
, это означает, что я хочу сделать все новые позиции с checked = 0, поэтому я могу их фильтровать. И пользовательское поле - пользователи не могут выбрать пользователя в списке. Как взять идентификатор пользователя (который добавляет автомобиль) вform.save()
?
Спасибо.
Update:
class Pictures(models.Model):
cars = models.ForeignKey(Cars, related_name='pictures')
width = models.PositiveIntegerField(editable=False, default=640)
height = models.PositiveIntegerField(editable=False, default=480)
image = models.ImageField(upload_to=lambda inst, fname: 'users_img/' + 'cars' + fname, height_field='height', width_field='width', max_length=100)
def __unicode__(self):
return str(self.id)
1. Это 3 различные формы модели. Если 3 имеют постоянные взаимно-однозначные отношения друг к другу, почему бы не объединить их в 1 модель? – sergzach
нет 3, одна модель с 1 2 1 – tim
Непонятно, вы имеете в виду одну форму Django, которую хотите, или вы имеете в виду одну форму html? – sergzach