Python 如何检查用户输入的条目在过去30天内是否已由他/她在我的django网站中输入

Python 如何检查用户输入的条目在过去30天内是否已由他/她在我的django网站中输入,python,mysql,django,Python,Mysql,Django,我正在使用Django 1.7.7和Python3.4.4构建一个调查网站,用户输入并说出他的“姓名”和“id”。我有一个名为“list”的sql表,它存储所有用户名和id。我想让我的Django网站检查当用户输入他/她的姓名和id时,该id是否已经存在于过去30天的表格中。基本上,如果用户的id在过去30天内存在,则不会提示他/她进行调查,否则他们将不得不进行调查 我知道我必须构建一个查看函数来检查这个条件,但我无法确定查询/逻辑应该是什么。在视图功能上的任何帮助都将极大地帮助我的发展!谢谢。

我正在使用Django 1.7.7和Python3.4.4构建一个调查网站,用户输入并说出他的“姓名”和“id”。我有一个名为“list”的sql表,它存储所有用户名和id。我想让我的Django网站检查当用户输入他/她的姓名和id时,该id是否已经存在于过去30天的表格中。基本上,如果用户的id在过去30天内存在,则不会提示他/她进行调查,否则他们将不得不进行调查

我知道我必须构建一个查看函数来检查这个条件,但我无法确定查询/逻辑应该是什么。在视图功能上的任何帮助都将极大地帮助我的发展!谢谢。

您可以在列表模型中添加“时间戳”字段。您甚至可以使用
auto\u now\u add
参数使Django自动将其设置为
now()

 timestamp = models.DateTimeField(auto_now_add=True)
您可以检查上个月内是否有同名id的记录:

 from django.utils.timezone import now
 import datetime
 is_duplicate = List.objects.filter(id=id, name=name, timestamp__gte = now() - datetime.timedelta(days=30))

注意ugte构造的用法-它表示“大于”,可与数字和时间戳一起使用。此筛选器将仅返回在过去30天内创建的记录。希望这有帮助

看起来您需要向数据库添加一个时间戳,并根据需要进行更新。然后您可以根据需要检查时间戳。在“列表”表中,您是否有记录提交日期的列?您的数据库不会自动记录该数据,您必须添加datetime列并相应地更新提交过程。之后,您可以使用Django的ORM按时间进行查询和筛选。有关按日期范围查询的示例,请检查此解决方案: