Django:[对象对象]返回而不是Django视图数组

2024-09-28 05:25:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我的django项目有点麻烦。例如,我编写了一个视图,用于从数据库中提取数据并返回电话簿的名称数组。当我把返回的数据(phonebookcontacts数组)放入一个警报中时,这些名字就会出现,例如:“Adam”、“Brittany”等等控制台.log返回的数据、项名称也会返回(“Adam”、“Brittany”等)。使用javascript,我试图让数据显示在td单元格内,只显示单个项目名称,这样就有一个用于Adam的div,一个用于Brittany的div等等。不幸的是,我的代码没有显示联系人姓名,而是多次显示[Object Object]。如何获取联系人姓名来代替[对象对象]?为什么会出现[对象对象]?谢谢你能提供的任何帮助。在

我的代码如下:

在/模型.py公司名称:

class phonebook(models.Model):
    name = models.Charfield(max_length=200)
    phone_number = models.CharField(max_length=100)

在/视图.py公司名称:

^{pr2}$

在/序列化程序.py公司名称:

from django.core.serializers.python import Serializer 

class contactSerializer(Serializer):
    def end_object(self, obj):
        self._current['id'] = obj._get_pk_val()
        self.objects.append( self._current )

在/主.js公司名称:

function generateCard(contactNameC, iconC) {
    var card = "<td class='tablecells'><a class='tabletext' href='#'><span class='fa "
            + iconC + " concepticons'></span><h2 class='header'>" + contactNameC
            + "</h2><p><span class='fa fa-chevron-circle-right'></span></p></a></td>";
    return card;
}


var indexLast = 9;
$(".showmorebutton").click(function() {
    var config = {
        type: 'GET',
        url: SUBMIT_URL,
        data: {
            indexStart: indexLast
        },
        dataType: 'json',
        success: function (data, textStatus_ignored, jqXHR_ignored)  {
            var moreAvailable = data.moreAvailable;
            var contacts = data.returned_contacts;
            var contactNameLoop = $.each(contacts, function(idx, obj) {
                    console.log(obj.name);
                    alert(obj.name)
                }); 

            if (moreAvailable === "more_than_two") {
                $("table").append("<tr></tr>");
                for (var i = 0; i < 3; i++) {
                var contactName = contactNameLoop[i]
                var icon = "fa facogs";
                $("table tr:last").append(generateCard(contactName, icon));
                }
            }
        }
    };
    $.ajax(config);
    indexLast += 3; 
});

编辑:

我还确保将适当的模块/文件导入到每个python文件中。在


Tags: 数据对象self名称objdatavar公司
1条回答
网友
1楼 · 发布于 2024-09-28 05:25:46

迭代永远不会一次产生一个名字,因为你的$.each正在迭代所有联系人。在

您应该在contacts迭代中移动generateCard函数,并使用obj变量,而不是将整个数组(传递整个数组将输出未定义或[object object])到generateCard函数中。在

$.each(contacts, function(idx, obj) {
    var icon = "fa facogs";
    $("table tr:last").append(generateCard(obj, icon));
});    

完整但做作的示例,并假设可能有错误的json结构。在

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <table></table>

和13;
和13;

更新

您的问题在于您的generateCard函数,将contactNameC更改为{}。在

相关问题 更多 >

    热门问题