Я хочу установить BooleanField inuse
в True, когда я сохраняю ModelForm (я использую форму вне области администрирования), и я не уверен, как это сделать.Simple Django form/model save question
Модели:
class Location(models.Model):
place = models.CharField(max_length=100)
inuse = models.BooleanField()
class Booking(models.Model):
name = models.CharField(max_length=100, verbose_name="Your name*:")
place = models.ManyToManyField(Location, blank=True, null=True)
формы:
class BookingForm(ModelForm):
class Meta:
model = Booking
def save(self, commit=True):
booking = super(BookingForm, self).save(commit=False)
if commit:
booking.save()
self.save_m2m()
for location in booking.place.all():
location.inuse = True
print location #nothing prints
location.save()
Вид:
def booking(request):
form = BookingForm()
if request.method == 'POST':
form = BookingForm(request.POST)
if form.is_valid():
form.save()
else:
form = form
return render_to_response('bookingform.html', {
'form': form,
})
Обновлено до последней (см Manoj Govindan's answer). Он по-прежнему не обновляет inuse
True при отправке/сохранении.
Существуют ли какие-либо другие модели, участвующие? Какова базовая модель для формы «Бронирование»? Какова связь между «Расположение» и другими моделями, если таковые имеются? –
никаких отношений, кроме того, что вы видите минус какая-то мета и т. Д. –
Что не так с 'models.BooleanField (default = True)'? –