I have a Django model with some static methods. I’d like to call the methods from outside the application (cronjob).
The model I have:
class Job(models.Job):
#Irrelevant information
@staticmethod
def methodIwantToCall():
#statements
I have the following python file that I’m using for the cron job:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from myapp.models import Job
Job.methodIwantToCall()
At first, I was having an error about DJANGO_SETTINGS_MODULE not being set and I fixed that, however, now I have the following error: No module named myapp.utils
I feel like I’m doing something that I’m not supposed to do. So how do I call that static method the way I want it to be called?
EDIT: It looks like the paths are getting messed up when I’m importing from outside Django. For example, I have an import in my models file, when I call the cron file it fails importing with the message ImportError: No module named myapp.utils even though it’s working.
The proper solution is to create custom manage.py command.