Запись в базу данных Django - Python

Узнай цену своей работы

Формулировка задачи:

Только начал изучать джанго имеются модели в Django проекте
Листинг программы
  1. from django.db import models
  2. class GNSSData(models.Model):
  3. time = models.CharField(max_length=8)
  4. coordinate = models.CharField(max_length=50)
  5. date = models.CharField(max_length=15)
  6. satellitesCount = models.CharField(max_length=2)
  7. dataFlag = models.CharField(max_length=15)
  8.  
  9. class DriverStatus(models.Model):
  10. status = models.CharField(max_length=100)
Через админпанель записи добавляются, редактруются и тд. В общем проект корректно работает. Пытаюсь не из теминала(!), а из другого проекта записать в БД данные
Листинг программы
  1. import models
  2. rec = GNSSData(
  3. time ="1",
  4. coordinate = "2",
  5. satellitesCount = "2",
  6. dataFlag ="4")
  7. rec.save()
  8. dr = UARTDriver()
  9. driverSt = DriverStatus(
  10. status = "5")
  11. driverSt.save()
  12. print("Данные записаны в базу!")
выкидывает django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. Предусмотренна ли вообще такая возможность?
Traceback (most recent call last): File "dbTest.py", line 1, in
import models File "C:\Users\Дмитрий\Desktop\NV08C_Controller_View\NV08C_Controller\viewModul\viewNV08C\models.py", line 3, in class GNSSData(models.Model): File "C:\Python35-32\lib\site-packages\django\db\models\base.py", line 100, in __new__ app_config = apps.get_containing_app_config(module) File "C:\Python35-32\lib\site-packages\django\apps\registry.py", line 244, in get_containing_app_config self.check_apps_ready() File "C:\Python35-32\lib\site-packages\django\apps\registry.py", line 127, in check_apps_ready raise AppRegistryNotReady("Apps aren't loaded yet.") django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

Решение задачи: «Запись в базу данных Django»

textual
Листинг программы
  1. # -*- encoding: utf-8 -*-
  2. import os
  3. import time
  4. import django
  5. import schedule
  6. from django.conf import settings
  7.  
  8.  
  9. def execute_command():
  10.     from django.contrib.auth.models import User
  11.     from News.models import News
  12.     from django.utils import timezone
  13.  
  14.     def create_notification(message, for_user):
  15.         News.objects.create(
  16.             title=message,
  17.             is_important=True,
  18.             notify_for_user=for_user,
  19.             location_url=settings.CRON_PAYMENT_URL
  20.         )
  21.  
  22.     try:
  23.         django.setup()
  24.         users = User.objects.filter(
  25.             profile__is_active=True,
  26.             # profile__stream__day_for_second_pay__lt=timezone.now().date(),
  27.             profile__cherry_pae=True,
  28.             profile__is_paid=False
  29.         )
  30.         for user in users:
  31.             delta = (user.profile.stream.day_for_second_pay - timezone.now().date()).days
  32.             if delta < 0:
  33.                 user.profile.is_active = False
  34.                 user.save()
  35.                 create_notification(
  36.                     'Ваш аккаунт деактивирован!', user
  37.                 )
  38.             elif delta < settings.CRON_DAY_DELTA:
  39.                 create_notification(
  40.                     'Дней до даты оплаты: {}'.format(delta), user
  41.                 )
  42.             else:
  43.                 print('Skip')
  44.     except Exception as e:
  45.         print(e)
  46.  
  47.  
  48. if __name__ == "__main__":
  49.     os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Panel.settings")
  50.     schedule.every().day.at(settings.CRON_TIME).do(execute_command)
  51.     while True:
  52.         schedule.run_pending()
  53.         time.sleep(1)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут