序列化Djang中的对象时出现断言错误

2024-06-16 11:41:01 发布

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

在Django中,我想序列化(通过Rest)一个Lecteur对象,该对象如下所示:

from django.db import models
from django.contrib.auth.models import User

class Lecteur(User):
    bibliotheque = models.ManyToManyField('bibliotheque.Livre')

以及序列化程序:

^{pr2}$

问题是我在计算这行代码时有一个AssertionErrorserializer = LecteurSerializer(lecteur)在我看来:

@csrf_exempt
def bibliotheque(request, id):
    """
    Show user's bibliotheque \w id    
    """
    try:
        lecteur = Lecteur.objects.get(id=id)
    except Lecteur.DoesNotExist:
        return HttpResponse(status=404)

    if request.method == 'GET':
        serializer = LecteurSerializer(lecteur)
        return JSONResponse(serializer.data)

希望你能帮忙。在


Tags: 对象djangofromimportidreturn序列化models
1条回答
网友
1楼 · 发布于 2024-06-16 11:41:01

首先,您应该提供完整的回溯,这样我们就可以在不重新创建所有环境的情况下深入研究问题。这是常识。在

问题是:

fields = ('bibliotheque')

正如断言错误所说,字段应该是list或tuple,或者其他iterable。在

这里您应该了解一件事:Python元组语法与操作顺序语法冲突。 所以,('a') == 'a'。要创建一个元素的元组,应该使用hack:('a',)。注意逗号!在

所以,如果你的情况下,修复将是:

^{pr2}$

相关问题 更多 >