フォームを表示して同じフォームを保存するビューがあります。ビューを最初に表示するとき、エラーはありません。ただし、ビューに保存 (POSTing) すると、次のエラーが発生します。
/test6/settings/ int() 引数の TypeError は、'QueryDict' ではなく、文字列または数値でなければなりません
意見
@login_required
def keyword_settings(request, keyword):
keyword = Keyword.objects.get(keyword=keyword, status="Active")
# If we had a POST then get the request post values.
if request.method == 'POST':
# Populate the form with the instance.
form = KeywordFrom(request.POST, instance=keyword)
# Check we have valid data before saving trying to save.
if form.is_valid():
form.save()
form = KeywordFrom(instance=keyword, user=request.user)
context = {'form': form}
return render_to_response('sms/keyword_settings.html', context, context_instance=RequestContext(request))
形
class KeywordFrom(forms.ModelForm):
def __init__(self, user=None, *args, **kwargs):
"""
Init method.
"""
super(KeywordFrom, self).__init__(*args, **kwargs)
if user is not None:
this_originator_name = Originator.objects.for_user(user)
self.fields['sender_name'] = forms.ModelChoiceField(queryset=this_originator_name)
class Meta:
model = Keyword
問題が sender_name にあることはわかっていますが、別のことを試してみましたが解決しませんでした。