django返回ajax数据类型,如何保留通过AJAX提交的django表单中的数据类型

将数据发送到服务器时,服务器将始终以字符串的形式接收/处理它。除非你使用Django表单来处理数据。在这种情况下,Django会发挥魔力并将所有内容转换为适当的类型。

如果您发送使用AJAX的数据,你也许可以只使用$('#add_member_Form').serialize()代替$('#add_member_Form').serializeArray(),像这样:

$.ajax({

url: 'members/new/',

type: 'post',

data: $('#add_member_Form').serialize(),

success: function (data) {

// do whatever with the data

}

});

而现在考虑到你在HTML以下输入:

名字

姓氏

性别

您将能够检索这个数据是这样的:

def add_member(request):

first_name = request.POST.get('first_name')

last_name = request.POST.get('last_name')

try:

gender = int(request.POST.get('gender')) # try to convert the string to int

except ValueError: # the post data was not a valid integer

gender = 1 # fallback to a default value? the ideal case would run a validation using a proper Form

member = Member.objects.create(first_name=first_name, last_name=last_name, gender=gender)

return redirect('members_list')

但是,你可以进一步采取的步骤,并使用Django表单,像这样:

from django import forms

from .models import Member

class MemberForm(forms.ModelForm):

class Meta:

model = Member

fields = ('first_name', 'last_name', 'gender',)

然后在视图,你可以简单地做这样的事情:

def add_member(request):

if request.method == 'POST':

form = MemberForm(request.POST) # here Django will process your form, convert all the data types

if form.is_valid(): # Then you can save the data that came from the Ajax request, or do whatever

form.save()

return redirect('members_list')

else:

form = MemberForm()

return render(request, 'add_member.html', {'form': form})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值