【发布时间】:2020-04-22 14:20:58
【问题描述】:
我正在使用 Django 框架运行一个网站。下面是代码。
Forms.py:
class ProfileForm(forms.ModelForm):
class Meta:
model=Profile
widgets = {
'address_line_1': forms.TextInput(attrs={'placeholder': 'Door No,Building'}),
'address_line_2': forms.TextInput(attrs={'placeholder': 'Area,Locality'}),
}
fields=('first_name','last_name','mobile_no','email','address_line_1','address_line_2','postal_code','city','country','image','referral_contact','promo_coupon','ic')
views.py:
def signup(request):
registered=False
failed_ref=False
wrong_ref=False
if request.method=='POST':
user_form = UserForm(data=request.POST)
profile_form = ProfileForm(request.POST)
if 'city' in request.POST:
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
else:
print(user_form.errors,profile_form.errors)
user_err=''
mobile_err=''
if user_form.errors:
user_err="A profile with this username already exists!"
if profile_form.errors:
mobile_err="A profile with this mobile number already exists!"
data={'registered':registered,'failed_ref':failed_ref,'wrong_ref':wrong_ref,'user_error':user_err,
'profile_error':mobile_err}
return JsonResponse(data)
else:
user_form=UserForm()
profile_form=ProfileForm()
return JsonResponse({'profile_form':profile_form,'registered':registered,
'failed_ref':failed_ref,'wrong_ref':wrong_ref})
我想得到 JSON 格式的响应。我得到的错误是"TypeError: Object of type ProfileForm is not JSON serializable".
谁能帮忙弄清楚为什么会这样?
【问题讨论】:
-
为什么首先要将表单序列化为 json?
-
我也在为此做安卓应用。所以我需要获取表单的 JSON 响应。