1
我有这个“模型”Django和Ajax的安全问题
class messages(models.Model):
status_choices = (
(u'read',u'read'),
(u'unread',u'unread')
)
user = models.ForeignKey(User)
message = models.TextField()
status = models.CharField(max_length=6,choices=status_choices,default='unread')
sender = models.ForeignKey(User,related_name="sender")
这是我的看法,其获取用户信息,并将其传递给JavaScript。
@login_required
def ajax_fetch_messages(request):
if request.is_ajax():
print(request.POST['user'])
# first check that user himself asked for his/her messages
requested_user = get_object_or_404(User,id=request.POST['user'])
if requested_user == request.user:
# do processing of messages
user_messages = messages.objects.filter(user=requested_user,status='unread')
'''try:
response = dumps(messages)
except:
print("Unable to dump messages")'''
return HttpResponse(user_messages)
else:
return HttpResponse("You're not authorised to do that")
else:
return HttpResponse("This method can't be called this way")
现在我有以下顾虑
- 我无法jsonify通过上述view.So我要送由视图的JavaScript返回“消息”对象返回的对象。
- 将python对象传递给javascript没有在Django结束对象时安全吗?如果不是,那么会出现什么问题?
那么,你有什么要说我的问题?
它说: 类型错误:不是JSON序列化 –
2012-07-10 19:46:31
你必须使用户的字符串也只是做一个嵌套的字典,就像这样:'信息= {“用户”:{“名”:“莱恩','last_name':....}} – Hassek 2012-07-10 19:51:24
好吧,然后我不得不诉诸同样的技术,我用我的页面填充更多的帖子使用ajax.What我做的是我转换后的对象到一个字典包含只有字符串,然后我将json化的字典返回给javascript。 但在这里我想通过使用{{message.status}}等来利用模板的力量。所以,我想我不能那样做。 – 2012-07-10 19:59:37