如何通过脚本自动创建Django模型实例?

问题描述

我刚接触Django,最近创建了一个网站来在我的祖国对COVID-19数据进行分组和显示。

我正在使用CaseDeclaration模型记录各城市的每日新病例,死亡人数和恢复情况:

class CaseDeclaration(models.Model):
    city = models.ForeignKey(City,on_delete=models.CASCADE)
    date = models.DateField(default=lambda: CaseDeclaration.latest_date())
    new_cases = models.IntegerField(default=0)
    new_deaths = models.IntegerField(default=0)
    new_recoveries = models.IntegerField(default=0)
    source = models.URLField(max_length=200,blank=True)

它可以正常工作,但是我现在正在编写一个脚本,该脚本将自动根据Facebook上本地新闻媒体的出版物创建CaseDeclaration对象的过程。该脚本位于models.py和views.py旁边的 text_extractor.py 文件中。此时,它需要一个txt文件,并将数据提取到字典中,如下所示(键是城市名称):

>>> print(extract_data())
{'non répertorié': {'new_deaths': 6,'new_recoveries': 344},'Antananarivo': {'new_cases': 388},'Ambatondrazaka': {'new_cases': 13},'Toliara': {'new_cases': 9},'Fianarantsoa': {'new_cases': 7},'Mahajanga': {'new_cases': 6},'Ambositra': {'new_cases': 3},'Miarinarivo': {'new_cases': 2},'Toamasina': {'new_cases': 2},'Sambava': {'new_cases': 1}}

日期 extract_date()返回格式8-11-2020作为str。

我现在需要一种方法来获取每个城市的数据并创建模型实例,而无需使用python shell或管理面板。最后,编程脚本以每天执行

到目前为止我已经尝试过:

  1. 将模型导入到我的text_extractor.py文件中,然后从那里使用Model()。save(),但是我的文件无法导入模型,而且我不知道如何从那里从服务器运行脚本。
  2. li>
  3. 为CaseDeclaration创建模型管理器,并为其提供create_from_dict()函数
  4. 创建一个函数,该函数将创建模型实例,并在每次加载主页时运行它。* 和最新的CaseDeclaration对象都不是今天。另外,在这里,我的自定义.py文件无法识别为模块,因此无法导入。

无论哪种方式最终都能奏效,我自己无法解决这个问题,而且在线资源确实很有限,所以希望您能提供帮助。提前非常感谢您!

编辑:当前代码 text_extractor.py

def extract_data():
    return find_data(region_to_cities(join_words(cleanup_covid19(extracted_data))))

def extract_date():
    temp = find_date(region_to_cities(join_words(cleanup_covid19(extracted_data))))
    date = '-'.join(str(e) for e in temp)
    return date

views.py

def extractCaseDeclaration():
    from .text_extractor import extract_data,extract_date
    data = extract_data()
    date = datetime.datetime.strptime(extract_date(),'%m-%d-%Y')

    for key,values in data.items():
        city = ''
        if "-" in key:
            city = string.capwords(key,'-')
        else:
            city = string.capwords(key)
        print(city)
        city = City.objects.get(name = city)

extractCaseDeclaration()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...