Я просто ищу ответ на мой (кажется, глупый) вопрос.Я уже просмотрел несколько сообщений stackoverflow, но любое из них было полезно :(
У меня вопрос, как сравнить два экземпляра разных моделей с разными?
Вот мой случай:
У меня есть две модели: Product и Connector. Сначала включают id (pk), имя и т. Д. Другая включает id (pk), productId (fk), userId (fk), ect.
Моя цель - подготовить просмотр только этого продукта, который находится в db-таблице Connector как product (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" как полностьюразличных типов. Firs это "core.models.ProductModel", а второй "core.models.ConnectorModel". Я пытался проанализировать его с помощью int (), но он генерирует ошибки.
Как я могу сравнить эти двазначения для добавления объекта в массив productListToDisplay?
(я видел django doc - Сравнение объектов , но для этого случая нет полезной информации)