我只是在寻找我(似乎很愚蠢)问题的答案。我已经看过一些 stackoverflow 帖子,但其中任何一个都有帮助:(
我的问题是如何比较不同模型的两个实例?
这是我的情况:
我有两个模型:产品和连接器。首先包括 id(pk)、name 等。另一个包括 id(pk)、productId(fk)、userId(fk) 等。
我的目标是准备仅列出连接器数据库表中的产品作为产品(fk)的视图。
def list(self, request, *args, **kwargs):
# return only product user's watching
userId = self.request.user.id
connectorData = ConnectorModel.objects.filter(userId=userId)
allProducts = self.get_queryset()
productListToDisplay = []
for product in allProducts:
for connector in connectorData:
if product.id == connector.productId:
# HERE IS A PROBLEM
productListToDisplay.append(product)
serializer = ProductSerializer(productListToDisplay, many=True)
return Response(serializer.data)
问题是 Django 将“product.id”和“connector.productId”视为完全不同的类型。第一个是“core.models.ProductModel”,第二个是“core.models.ConnectorModel”。我试图使用 int() 解析它,但它会产生错误。
如何比较这两个值以将对象添加到 productListToDisplay 数组?
(我看到了django doc - 比较对象,但对于这种情况没有有用的信息)