Простой вопрос о форме / модели Django

Я хочу, чтобы BooleanField inuse был True, когда я сохраняю ModelForm (я использую форму вне области администрирования), и я не уверен, как это сделать.

Модели:

 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, }) 

Обновлено до последнего (см . Ответ Маноя Говиндана ). Он по-прежнему не обновляет inuse для True при отправке / сохранении.

2 Solutions collect form web for “Простой вопрос о форме / модели Django”

 class BookingForm(ModelForm): class Meta: model = Booking def save(self, commit=True): booking = super(BookingForm, self).save(commit=False) booking.inuse = True if commit: booking.save() 

Вот мой удар по нему:

 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 location.save() 

Обновить

Весь код, который я использовал:

 # models.py 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) # forms.py 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 location.save() In [1]: from test_app.forms import BookingForm In [2]: from test_app.models import Location # I had already saved some `Location` instances. In [3]: data = dict(name = 'MyCity', place = [p.id for p in Location.objects.all()]) In [4]: f = BookingForm(data) In [5]: f.save() In [6]: for each in Location.objects.all(): ...: print each.place, each.inuse ...: PlaceA True PlaceB True PlaceC True 
  • Ошибки сериализатора djangorestframework: {u'non_field_errors ': ]}
  • Лучший способ ссылки на модель пользователя в Django> = 1.5
  • Есть ли умный способ получить предыдущий / следующий элемент с помощью Django ORM?
  • Фильтр Queryset Django Boolean не работает
  • Исключение первичного ключа в dumpdata Django с естественными ключами
  • Ошибка python_2_unicode_compatible
  • запроса соответствия не существует Ошибка в Django
  • сделанные пули неправильны в url django
  • Плохо влияет на производительность при заполнении значений поля ManyToMany в rest api (с использованием рамки django rest)
  • Получить имя основного поля модели Django
  • Можете ли вы зарегистрировать несколько ModelAdmins для модели? Альтернативы?
  •  
    Interesting Posts for Van-Lav

    Функция Python замедляется с наличием большого списка

    Используйте lxml для анализа текстового файла с плохим заголовком в Python

    загрузка модулей с помощью imp.load_source с тем же именем, что приводит к слиянию модулей

    Как использовать LibreOffice Calc и Python?

    Проблема с прикреплением файлов в двоичном файле

    Красивый суп и извлечение div и его содержимого по ID

    Использование 100% всех ядер с Python (многопроцессорная обработка)

    булевая маска в пандах

    youtube-dl в Android

    Как Django создает таблицы, относящиеся к пользователю, auth, group, session и т. Д. С первой миграцией?

    Как получить путь к текущему исполняемому файлу в Python?

    Использование «запросов» Python с существующим подключением сокетов

    Различия между сельдереем между параллелизмом, рабочими и автомасштабированием

    Как открыть новое окно или вкладку в webdriver (Python)?

    Python: заменить теги, но сохранить внутренний текст?

    Python - лучший язык программирования в мире.