如何使用Django / Heroku结构更新json文件?

时间:2018-10-11 21:20:22

标签: jquery json django heroku

我已经在Heroku上建立了Django网站https://www.wasjournalistenverdienen.de/,现在一切正常。但是我有一个问题。

此网站上的自动完成功能基于JS中的easyautocomplete插件和位于我的Django结构的静态/文件夹中的德语发布者名称的预定义JSON文件。

这个想法是,只要有人输入的名称与JSON的预定义键都不匹配,就会将此新名称推入JSON,并且下次有人开始键入此名称时,自动完成功能也会建议使用此新选项。当我在本地检查Django时,此方法工作正常。但是问题是Heroku太复杂了,JSON的任何更改都没有保存。我试图通过IndexView更新JSON并将更改存储在heroku上,但是似乎未保存更新的JSON。我还尝试过使用AWS作为一种解决方法,在那里更改JSON,但是问题是自动完成功能无法加载JSON,因为它来自另一台服务器。

有人在如何通过heroku上的views.py创建至少临时文件以及如何在JS中引用它们方面有经验吗?

以下是在indexview中创建更新的JSON的代码:

entriesno = DataCollection.objects.count()
    model=Medium
    mediumno=Medium.objects.values("mediumname").distinct().count()
    with io.open('honoradar/static/honoradar/mediumsname.json', "r") as json_file:
        oldjsondata = json.load(json_file)
        all_db_entries=Medium.objects.values("mediumname").distinct()
        for entry in all_db_entries:
            mediumname=(entry["mediumname"])
            newentry={"name":mediumname.title(),"code":mediumname.title()}
            oldjsondata.append(newentry)
        seen = set()
        new_l = []
        for d in oldjsondata:
            t = tuple(d.items())
            if t not in seen:
                seen.add(t)
                new_l.append(d)
        with io.open('tmp/mediumsname_temporary.json', 'w+') as outfile:
                        data=json.dumps(new_l, ensure_ascii=False)
                        outfile.write(data)

0 个答案:

没有答案