Ошибка обновления данных модели с помощью .objects.filter (). Update () в Django с использованием Djongo "djongo.sql2mongo.SQLDecodeError" - PullRequest
0 голосов
/ 25 октября 2019

Здравствуйте, я использую Django и MongoDB для создания проекта REST API. Я использую Djongo для соединения Django с MongoDB. Я создал свои модели следующим образом:

Models

from djongo import models


class OPCNetworkNode(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    address = models.CharField(max_length=100, default="localhost", blank=False, null=False)
    port = models.CharField(max_length=10, default="58725")


class OPCTagBrowserSesson(models.Model):
          id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
          opc_node = models.ForeignKey(OPCNetworkNode, on_delete=models.CASCADE,related_name='node_opc_sesson', unique=True)
          clientId = models.CharField(max_length=100, blank=False, null=False)
          token = models.CharField(max_length=100, blank=False, null=False)
          timestamp = models.DateTimeField(default=timezone.now())

и создал представление на основе функций следующим образом:

Представление

@api_view(['POST'])
def getOPCRoot(request):
    opc_uri = request.data.get('opc_uri')
    sessonInstance = OPCTagBrowserSesson.objects.filter(opc_node__address__exact=opc_uri)
    sessonInstance.update(clientId = "88888888888888")
    return Response(data={"check cmd"})

Но когда я запрашиваю POST-запрос к URL-адресу с параметром 'opc_uri', чтобы выполнить обновление данных модели, я получаю следующую ошибку.

Ошибка:

djongo.sql2mongo.SQLDecodeError: FAILED SQL: UPDATE "asset_herarchi_opctagbrowsersesson" SET "clientId" = %(0)s WHERE "asset_herarchi_opctagbrowsersesson"."id" IN (SELECT U0."id" FROM "asset_herarchi_opctagbrowsersesson" U0 INNER JOIN "asset_herarchi_opcnetworknode" U1 ON (U0."opc_node_id" = U1."id") WHERE U1."address" = %(1)s)
Params: ('88888888888888', 'localhost')
Pymongo error: {'index': 0, 'code': 40081, 'errmsg': '$in requires an array as a second argument, found: missing'}
Version: 1.2.35
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...