Django objects.update_or_create

Запустите Android Studio. Закройте любой открытый проект. Вернитесь к файлу> Закрыть проект. (Откроется окно приветствия) Перейдите в «Настройка»> «Настройки». В диалоговом окне «Параметры» выберите «Компилятор (Android-проекты на основе Gradle) слева и установите параметры VM на -Xmx512m (т. Е. Напишите -Xmx512m в разделе« Параметры VM ») и нажмите« OK ».

, а затем сделайте это

Щелкните правой кнопкой мыши на «Мой компьютер» и откройте свои системные свойства (бит, который вы открыли до того, как вы увидите ваши значения CPU / RAM) >> На левой боковой панели нажмите «Дополнительные системные настройки» >> «Переменные среды» >> В разделе «Система» Переменные, нажмите «Создать» >> Используйте следующие значения: // Имя переменной: _JAVA_OPTIONS // Значение переменной: -Xmx524M, затем нажмите OK и повторите попытку. перезапустите Android Studio

0
задан Venom 18 February 2019 в 14:21
поделиться

2 ответа

Вы неправильно понимаете, как работает update_or_create. Вот что говорят документы :

Метод update_or_create пытается извлечь объект из базы данных на основе заданного kwargs. Если совпадение найдено, оно обновляет поля, переданные в словаре defaults.

Таким образом, в kwargs вы передаете только те значения, которые вам нужны для соответствия, а не обновления. Вероятно, прохождение id или symbol должно быть единственным kwargs, что вам нужно. Все параметры, которые вы хотите обновить, должны быть переданы в defaults.

CryptoPrices.objects.update_or_create(
    key=exchange_rate['id'],
    symbol=exchange_rate['symbol'],
    defaults=dict(
        market_cap_usd=round(float(exchange_rate['market_cap_usd']), 3),
        volume_usd_24h=round(float(exchange_rate['24h_volume_usd']), 3),
        value= round(float(exchange_rate['price_usd']), 3))
)
0
ответ дан dirkgroten 18 February 2019 в 14:21
поделиться

Вы используете все поля в запросе для существующих экземпляров. Вам нужно просто использовать уникальные там, а остальное в defaults.

CryptoPrices.objects.update_or_create(
   key=exchange_rate['id'],
   symbol=exchange_rate['symbol'],
   defaults={             
       "market_cap_usd": round(float(exchange_rate['market_cap_usd']), 3),
       "volume_usd_24h": round(float(exchange_rate['24h_volume_usd']), 3),
       "value": round(float(exchange_rate['price_usd']), 3)
    })
0
ответ дан Daniel Roseman 18 February 2019 в 14:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: