I draw three multiple rectangles from it. I filter each box to have a separate day type. When I submit my form, I get this error.
int() argument must be a string or a number, not 'QueryDict'
What should I do to keep my shape?
This is what I do on my forms.py file to get different filtering for each selection window.
class ContractForm(forms.ModelForm): def __init__(self, project_id, *args, **kwargs): super(ContractForm, self).__init__(*args, **kwargs) self.fields['shoot_day'].queryset = Day.objects.filter(type=SHOOT, project__id=project_id) self.fields['travel_day'].queryset = Day.objects.filter(type=TRAVEL, project__id=project_id) self.fields['additional_day'].queryset = Day.objects.filter(type=ADDITIONAL, project__id=project_id)
I get my project_id as follows:
def editcontract(request, contract_id, slug): context_dict = {} contract = get_object_or_404(Contract, pk=contract_id) if request.method == 'POST': form = ContractForm(request.POST, instance=contract) if form.is_valid(): form.save() TvUsageForm = TvUsageFormSet(request.POST, instance=contract) AdditionalMediaUsageForm = AdditionalMediaUsageFormSet(request.POST, instance=contract) TvUsageForm.save() AdditionalMediaUsageForm.save() return HttpResponseRedirect(reverse('contract_list', kwargs={'slug':slug})) else: form = ContractForm(instance=contract, project_id=contract.project_id) TvUsageForm = TvUsageFormSet(instance=contract) AdditionalMediaUsageForm = AdditionalMediaUsageFormSet(instance=contract) project = get_object_or_404(Project, slug=slug) context_dict = { 'form': form, 'tvusage_form':TvUsageForm, 'additional_form':AdditionalMediaUsageForm, 'project':project } return render_to_response('contracts/edit_contract.html', context_dict, RequestContext(request))
source share