Я создал веб-сайт Django https://www.wasjournalistenverdienen.de/ на Heroku, и все идет хорошо.Но у меня есть одна проблема.
Автозаполнение на этом веб-сайте основано на плагине easyautocomplete в JS и предопределенном JSON-файле имен немецких издателей, который находится в статической / -папке моей Django-структуры.
Идея состоит в том, что всякий раз, когда кто-то вводит имя, которое не соответствует предопределенным ключам JSON, это новое имя помещается в JSON, и в следующий раз, когда кто-то начинает вводить это имя, автозаполнение также предлагает это новоевариант.Это прекрасно работает, когда я проверяю мой Django локально.Но проблема в том, что Heroku является эфермальным и что любые изменения в JSON не сохраняются.Я пытался обновить JSON через IndexView и сохранить изменения на heroku, но обновленный JSON, похоже, не сохраняется.Я также попытался использовать AWS в качестве обходного пути, изменив там JSON, но затем возникает проблема, заключающаяся в том, что автозаполнение не может загрузить JSON, поскольку оно приходит с другого сервера.
Кто-нибудь имел опыт создания хотя бы временных файлов черезviews.py на героку, а как же ссылаться на них в JS?
Вот код, который создает обновленный 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)