Python 如何从django模型获取ID
嗨,我有两个名为A和B的模型。我想从我的模型B中获取id,并将其与模型A(外键关系)中的id进行比较。我使用以下方法获取IDPython 如何从django模型获取ID,python,django,django-views,django-filter,Python,Django,Django Views,Django Filter,嗨,我有两个名为A和B的模型。我想从我的模型B中获取id,并将其与模型A(外键关系)中的id进行比较。我使用以下方法获取ID a=B.objects.filter(B\u id=object.id).值列表('id') 但是a打印的结果是[(82L,),(83L,),(84L,),(85L,)]而不是[82,83,]等。 如果没有附加的Ls,如何获得平面列表?values\u list()默认情况下返回分组为元组的值 如果你不想那样,就用 values_list('id', flat=True)
a=B.objects.filter(B\u id=object.id).值列表('id')
但是a打印的结果是[(82L,),(83L,),(84L,),(85L,)]
而不是[82,83,]
等。
如果没有附加的L
s,如何获得平面列表?values\u list()
默认情况下返回分组为元组的值
如果你不想那样,就用
values_list('id', flat=True)
这些数字是长整数。因此,它们返回时带有
L
后缀。但数字后面真的没有字母“L”。这在Python3中已被删除,因为所有整数现在都被视为长整数。我不相信你所看到的有什么值得惊慌的
编辑:有关更多信息,请参阅。是的,谢谢dhke。但它像[82L,83L,84L,85L]一样返回。知道为什么吗?@little:@little不知道你的模型和数据库很难说
L
表示这是一个长整数文本。你在使用MySQL吗?MySQL的dbapi实现似乎很有用。“L”后缀表示“长整数”,仅作为int
对象的内部表示形式打印。你不必关心它。你好,谢谢,但我使用的是Python2.7。这就是为什么concern@gentle是的,我想你一定在使用python 2,因为你看到了它。它是真的引起了问题还是只是打扰了你?如果出于某种原因想要显示它,而不包含L
,可以使用str()
,它应该只返回数字。因为稍后我需要将这些ID与其他模型的实际int ID进行比较。这就是为什么concern@gentle:但它们是实整数,“长”整数只能大于“普通”整数。你可以把它们彼此比较一下。看:哦,我明白了。非常感谢mfcovington:)可能的副本