Запустите Android Studio. Закройте любой открытый проект. Вернитесь к файлу> Закрыть проект. (Откроется окно приветствия) Перейдите в «Настройка»> «Настройки». В диалоговом окне «Параметры» выберите «Компилятор (Android-проекты на основе Gradle) слева и установите параметры VM на -Xmx512m (т. Е. Напишите -Xmx512m в разделе« Параметры VM ») и нажмите« OK ».
, а затем сделайте это
Щелкните правой кнопкой мыши на «Мой компьютер» и откройте свои системные свойства (бит, который вы открыли до того, как вы увидите ваши значения CPU / RAM) >> На левой боковой панели нажмите «Дополнительные системные настройки» >> «Переменные среды» >> В разделе «Система» Переменные, нажмите «Создать» >> Используйте следующие значения: // Имя переменной: _JAVA_OPTIONS // Значение переменной: -Xmx524M, затем нажмите OK и повторите попытку. перезапустите Android Studio
Вы неправильно понимаете, как работает update_or_create
. Вот что говорят документы :
Метод
blockquote>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)) )
Вы используете все поля в запросе для существующих экземпляров. Вам нужно просто использовать уникальные там, а остальное в 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)
})