0

私は私の(ばかげているように見える)質問に対する答えを探しています。私はすでにスタックオーバーフローの投稿をいくつか見てきましたが、どれも役に立ちました:(

私の質問は、異なるモデルの 2 つのインスタンスを異なるモデルと比較する方法です。

これが私のケースです:

Product と Connector の 2 つのモデルがあります。まず、id(pk)、名前などを含めます。他には、id(pk)、productId(fk)、userId(fk) などがあります。

私の目標は、Connector db-table にある製品のみを製品 (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" をまったく異なるタイプと見なしていることです。1 つ目は「core.models.ProductModel」、2 つ目は「core.models.ConnectorModel」です。int() を使用して解析しようとしましたが、エラーが発生します。

この 2 つの値を比較して、オブジェクトを productListToDisplay 配列に追加するにはどうすればよいですか?

( django doc - Comparing objectsを見ましたが、この場合に役立つ情報はありません)

4

2 に答える 2