Say У меня есть форма, которая выглядит следующим образом:Добавить данные в объект ModelForm перед сохранением
forms.py
class CreateASomethingForm(ModelForm):
class Meta:
model = Something
fields = ['field2', 'field3', 'field4']
Я хочу форму, чтобы эти три поля. Однако мой класс Something
также имеет field1
. Мой вопрос: как добавить данные в field1
, если я не использую ModelForm
для сбора данных. Я пытался делать что-то вроде этого, но это не работает, и я не уверен, на правильном пути, чтобы решить эту проблему:
views.py
def create_something_view(request):
if (request.method == 'POST'):
# Create an object of the form based on POST data
obj = CreateASomething(request.POST)
# ** Add data into the blank field1 ** (Throwing an error)
obj['field1'] = request.user
# ... validate, save, then redirect
Ошибка я получаю это:
TypeError: 'CreateAClassForm' object does not support item assignment
В Django, как правильно назначить данные объекту ModelForm
перед сохранением?
спасибо - глупая ошибка на мой конец использует вызов доступа к списку, чтобы получить атрибут объекта. – Joker
Для представлений на основе классов вы также можете [переопределить метод form_valid] (https://docs.djangoproject.com/en/1.5/topics/class-based-views/generic-editing/#basic-forms), чтобы добавить это вид информации, затем вызовите 'super (MyView, self) .form_valid (form)' для достижения такого же эффекта. –
Есть ли способ перезаписать метод сохранения формы для достижения того же? – jvannistelrooy