假设我有以下四条记录(假设还有更多):
record 1 record 2 record 3 record 4
area California Texas California California
food Lobster Lamb Rabbit Bagels
popular Bagels Elk Rabbit Rabbit
现在我通过手动选择area
和food
将新记录添加到数据库中。然后,通过在输入时查找特定popular
的最常见food
,自动填充area
字段。
例如,如果上述四条记录是整个数据库中的唯一记录,那么如果我要添加另一条记录area: California
和food: Bagels
,那么popular
(记录我刚刚添加了)会自动分配值Bagels
,因为Bagels
字段中有两个food
,区域为California
。
以上内容已经有效,我通过以下代码实现了上述目标:
popular = list(ModelData.objects.filter(area=area).values_list('food', flat=True))
Counter(popular).most_common()
问题是,上面仍然在数据库中留下了不正确的popular
值的现有记录;因为popular
仅在输入时计算,并且在添加更多条目时从不“重新计算”。
使用上面的示例(使用area: California
和food: Bagels
添加新记录),仍会有两个California
条记录record 3
和record 4
)如果popular
成为Bagels
最受欢迎的新食物,那么Bagels
值应该更新为California
。
每当popular
更新(或定期,即每小时/每天)时,如何更新area
每个food
值,成为新的,最受欢迎的Bad Request:400
?
我尝试在线搜索,毫不奇怪,没有任何运气,因为我意识到这是一个令人困惑的问题。
答案 0 :(得分:0)
cron
job(如man 5 crontab
中所述curl https://your-server/internal/run-houskeeping
。答案 1 :(得分:0)
我会使用芹菜,这将帮助您安排更新并与Django配合使用,或者您也可以添加脚本到您的crontab。