如何解决Django ajax:调用中不会进行任何更改
所以我为我的用户模型制作了这个ajax视图
def new_notification(request):
user = request.user
user.profile.notifications += 1
user.save()
return JsonResponse(serializers.serialize('json',[user]),safe=False)
我用通知的Integerfield扩展了我的用户模型,但是当我调用ajax时,它没有给我的通知模型+1,有人知道发生了什么吗?
我的urls.py
url(r'^ajax/new_notification/$',new_notification),
和我的ajax电话
$.get('/ajax/new_notification/')
我的用户个人资料模型
class ProfileImage(models.Model):
"""
Profile model
"""
user = models.OneToOneField(
verbose_name=_('User'),#to=settings.AUTH_USER_MODEL,to = User,related_name='profile',on_delete=models.CASCADE
)
avatar = models.ImageField(upload_to='profile_image')
notifications = models.FloatField(default='0')
解决方法
因此,更改网址:
url(r'^ajax/new_notification/(?P<username>[a-zA-Z0-9/_\.-]*)',new_notification),
然后,更改视图功能:
def new_notification(request,username):
#user = request.user
user = User.objects.get(username=username)
print(user.profile)
print(user.profile.notifications)
user.profile.notifications += 1
print(user.profile.notifications)
user.profile.save()
#user.save()
return JsonResponse(serializers.serialize('json',[user]),safe=False)
然后,在模板的ajax调用中,将URL更改为:/ajax/new_notification/{{ user.username }}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。