私は単純なフォームとビューを持っており、次のような基本的なことを行っています。
from annoying.decorators import ajax_request
@require_POST
@login_required
@ajax_request
def my_view(request):
form = MyForm(request.POST)
if form.is_valid():
form.save(request.user)
return {"ok": True}
return {"ok": False, "errors": form.errors}
forms.py:
class MyForm(forms.Form):
name = forms.CharField(max_length=250)
def clean_name(self):
cleaned_data = self.cleaned_data
name = cleaned_data.get('name', '')
if MyModel.objects.filter(name__iexact=name).exists():
raise forms.ValidationError(_(u"This already exists."))
return cleaned_data
def save(self, user):
obj, created = MyModel.objects.get_or_create(name=self.cleaned_data["name"], user=user)
return obj
しかし、メソッドでself.cleaned_dataを取得する際に問題がありform.save
ます。私のMyForm.clean_name
self.cleaned_dataはかっこいいです。
しかし、form.save
レベルでは、self.cleaned_data = {'name':{...}}self.cleaned_data['name']についても同じです。それを待つ..だけでなく、self.cleaned_data ['name'] ['name'] ['name'] ['name'] ['name'] ... ['name'] ['name']
type(self.cleaned_data)とそのキーはdict
何が私のコードをそのように振る舞わせることができますか?