Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在Ajax成功的过程中,是否可以调用Django外键对象?_Jquery_Python_Ajax_Django - Fatal编程技术网

Jquery 在Ajax成功的过程中,是否可以调用Django外键对象?

Jquery 在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

在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.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表示