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