django - int() argument must be a string or a number, not 'QueryDict' -
django - int() argument must be a string or a number, not 'QueryDict' -
i'm rendering out 3 multiple select boxes on form. i'm filtering each box out have seperate type of day. when submit form error.
int() argument must string or number, not 'querydict'
what must save form?
this i'm doing on forms.py file different filtering each select box.
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'm getting project_id so:
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() homecoming 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 } homecoming render_to_response('contracts/edit_contract.html', context_dict, requestcontext(request))
you have confusion argument list , keyword arguments:
instead of:
contractform(instance=contract, project_id=contract.project_id)
you want:
contractform(contract.project_id, instance=contract)
to elaborate: constructor accepts project id first argument not keyword argument. need give first argument. simple confusion, eh?
django django-forms
Comments
Post a Comment