Сохранение модели в базе данных в Django - PullRequest
0 голосов
/ 04 декабря 2018

Я новичок в django и работаю над проектом уже несколько недель.Я делаю Django-приложение, которое я размещаю на heroku.Я хочу наметить задачу.Конечная цель - выполнить серию вызовов API, которые сохранят результаты в модели.

В настоящее время у меня в приложении есть файл scheduler.py

from django.core.management.base import BaseCommand, CommandError

from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()

from fans.models import TotalPageLikes

@sched.scheduled_job('interval',minutes=1)
def timed_job():
    print('This job runs every minute')

@sched.scheduled_job('interval',minutes=1)
def fan_call():
    twr = TotalPageLikes()
    twr.fans = 50
    twr.save()
    print('should have saved TWR')
class Command(BaseCommand):

    def handle(self, *args, **options):

        sched.start()

В моем Procfile я называю это

web: gunicorn site1.wsgi
scheduler: python manage.py scheduler

А вот модель

class TotalPageLikes(models.Model):
    fans = models.BigIntegerField()

Наконец, вот мой админ

from django.contrib import admin

# Register your models here.
from .models import Fan, Input, TotalPageLikes

admin.site.register(Fan)
admin.site.register(Input)
admin.site.register(TotalPageLikes)

Все успешно разворачивается и запускается, и я могу увидеть результаты с помощью logu heroku --tail.Я вижу операторы печати, но когда я открываю приложение в heroku и перехожу к / admin, я вижу, что модель ничего не держит.Не отображается ошибка сохранения, но она не сохраняется должным образом.

Кто-нибудь знает, как сохранить запланированное задание в модели?Благодарю.

ОБНОВЛЕНИЕ Я пытался использовать TotalPageLikes.objects.create (fans = -1) в scheduler.py и, тем не менее, он не отображается при открытии приложения в heroku и переходе кадмин.Я вижу в журнале, что я его регистрирую, и не вижу ошибок.

ОБНОВЛЕНИЕ

Я запустил это локально, и он сделал то, что ожидал.Что-то происходит с герою.У меня это работает на отдельных динамо, потому что так я научился это делать.Я собираюсь попытаться проникнуть в функции в моем models.py, чтобы увидеть, изменит ли это что-нибудь.

ЗАКЛЮЧИТЕЛЬНОЕ ОБНОВЛЕНИЕ Мне пришлось использовать базу данных PostgreSQL для этого.Необходимые шаги включали использование команды heroku pg:credentials:url DATABASE и настройку правильных кредитов здесь в my settings.py в DATABASES =.Затем мне пришлось создать нового суперпользователя python manage.py createsuperuser для доступа к моей базе данных, чтобы убедиться, что она работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...