Я пытаюсь установить значение поля при запуске формы.Установка значения формы при запуске формы
Значение этого поля извлекается при входе в представление - вид, являющийся расписанием. Затем для каждого Time, установленного в представлении, я хочу связать его с расписанием.
@login_required
@requires_csrf_token
def timesheet(request, timesheet_id):
timesheet = TimeSheet.objects.get(pk=timesheet_id)
NewTimeFormSet = modelformset_factory(Time, form=TimeForm, formset=RequiredFormSet)
if request.method == 'POST':
newtime_formset = NewTimeFormSet(request.POST, request.FILES)
for form in newtime_formset:
if form.is_valid():
form.save()
#then render template etc
Таким образом, чтобы убедиться, что форма проверена, я хочу установить это поле при запуске формы. Когда я пытаюсь установить это поле после POST в представлении, я не смог получить поле для установки или формы для проверки.
Мой код получает timesheet_id, когда экземпляр модели инициируется при входе в вид
def __init__(self, *args, **kwargs):
# this allows it to get the timesheet_id
print "initiating a timesheet"
super(TimeSheet, self).__init__(*args, **kwargs)
И тогда форма генерируется и я бегу форме инициализации. Так это то, что я пытался
class TimeForm(forms.ModelForm):
class Meta:
model = Time
fields = ['project_id', 'date_worked', 'hours', 'description', 'timesheet_id',]
# some labels and widgets, the timesheet_id has a hidden input
def __init__(self, *args, **kwargs):
print "initiating form"
super(TimeForm, self).__init__(*args, **kwargs)
timesheet = TimeSheet.objects.get(id=timesheet_id)
self.fields['timesheet_id'] = timesheet
Это вызывает ошибку
NameError: global name 'timesheet_id' is not defined
Я не знаю, как это сделать ...
Я также попытался установив поле в форме метода clean(), но оно заполняется (отображается печатью), а затем все еще не проверяется, и я поднимаю ошибку набора форм. «Это поле обязательно».
Помощь!