未捕获的类型错误:无法读取 Object.success 处未定义的属性“字段”

时间:2021-05-18 11:55:00

标签: django ajax

我想使用 ajax 来显示所有对歌曲做出回应的评论。歌曲模型包含用于评论模型的多对多字段。我在使用 django 的序列化程序时遇到了问题,或者我在从我的视图中接收数据时遇到了问题。我不太确定是哪个。

View.py:

def commentview(request):
if request.is_ajax and request.method =="GET":
    song_id  = request.GET.get("song_id",None)
    song = get_object_or_404(Song,pk=song_id)
    comments = song.comments.all()
    ser_comments = serializers.serialize('json', comments)
    return JsonResponse({"instance": ser_comments}, status=200)

播放列表.html:

{% block javascript %}
    <script>
        function comments( id) {
            $.ajax({
                type: 'GET',
                        url: "{% url 'app:commentview' %}",
                data: { "song_id": id },
                success: function (response) {
                    var comments = JSON.parse(response["instance"]);
                    for (var i = 0; i <= comments.length; i++) {
                        
                        var field = comments[i]["fields"];
                        $("popup" + id).prepend(
                            '< h5 > ${ field["member"]|| "" }</h5 >' +
                            '< p > ${ field["text"]|| "" }</p >' +
                            '<br>',
                        )
                    }
                    $("popup" + id).prepend(
                        '<textfield id="comment' + id + '"></textfield>' +
                        '<button onclick="postComment(' + id + ')">Comment</button>',
                    )
                },
                error: function (response) {
                }
            })
        }
</script>
{% endblock javascript %}

我得到的错误代码:

1:520 Uncaught TypeError: Cannot read property 'fields' of undefined
    at Object.success (1:520)
    at i (jquery-3.2.1.min.js:2)
    at Object.fireWith [as resolveWith] (jquery-3.2.1.min.js:2)
    at A (jquery-3.2.1.min.js:4)
    at XMLHttpRequest.<anonymous> (jquery-3.2.1.min.js:4)

0 个答案:

没有答案