Jquery 在Ajax成功的过程中,是否可以调用Django外键对象?
在Ajax成功的过程中,是否可以调用Django外键对象 型号.pyJquery 在Ajax成功的过程中,是否可以调用Django外键对象?,jquery,python,ajax,django,Jquery,Python,Ajax,Django,在Ajax成功的过程中,是否可以调用Django外键对象 型号.py class Message(models.Model): id = models.AutoField(primary_key=True) chat = models.ForeignKey(Chat, models.CASCADE, null=True, related_name='chat') message = models.CharField(max_length=5000) date = models.DateTimeF
class Message(models.Model):
id = models.AutoField(primary_key=True)
chat = models.ForeignKey(Chat, models.CASCADE, null=True, related_name='chat')
message = models.CharField(max_length=5000)
date = models.DateTimeField(auto_now_add=True)
def message_view(request):
chatid = request.GET.get('chatid', None)
messages = Message.objects.filter(chat__id=chatid)
message_list = list(messages.values())
data = { 'message_list': message_list }
return JsonResponse(data)
视图.py
class Message(models.Model):
id = models.AutoField(primary_key=True)
chat = models.ForeignKey(Chat, models.CASCADE, null=True, related_name='chat')
message = models.CharField(max_length=5000)
date = models.DateTimeField(auto_now_add=True)
def message_view(request):
chatid = request.GET.get('chatid', None)
messages = Message.objects.filter(chat__id=chatid)
message_list = list(messages.values())
data = { 'message_list': message_list }
return JsonResponse(data)
chatoverview.html
$(document).ready(function(){
$(".btn_load_messages").click(function(){
var chatid = $(this).val();
$.ajax({
url:'/ajax/messages',
data: {
'chatid': chatid
},
dataType: 'json',
success: function(data){
var message_list = data.message_list;
var requestuser = "{{ request.user.id }}"
$(".container-text2").empty();
$.each(message_list, function(index, value){
$(".container-text2").
append("<div class=text1>"+ value.message +"</div>");
});
}
});
});
});
$(文档).ready(函数(){
$(“.btn\u加载消息”)。单击(函数(){
var chatid=$(this.val();
$.ajax({
url:“/ajax/messages”,
数据:{
“chatid”:chatid
},
数据类型:“json”,
成功:功能(数据){
var message_list=data.message_list;
var requestuser=“{request.user.id}”
$(“.container-text2”).empty();
$.each(消息列表、函数(索引、值){
$(“.container-text2”)。
追加(“+value.message+”);
});
}
});
});
});
我需要chat.buyer.id。所以我会做一些类似的事情:
$(".container-text2").append("<div class=text1>"+ value.chat.buyer.id +"</div>");
$(.container-text2”).append(“+value.chat.buyer.id+”);
但这是行不通的。有可能这样做吗?如果是的话,你能告诉我需要做些什么才能让它工作吗?不,你不能这样做。即使JS知道您的模型,它也无法访问数据,因为它运行在浏览器上,而不是服务器上 您需要在JsonResponse中提供所需的所有信息。您可以通过for循环或列表理解手动构建数据;或者,如果您正在做大量此类工作,您应该研究django rest框架,它的序列化程序允许您自定义模型的JSON表示