如何删除特定日期后django中的某个模型实例
问题描述:
class Mess(models.Model):
muser = models.OneToOneField(User)
MESS_NAME = (('GH','girls hostel top mess'),
('IH','girls hostel down mess'),
('MM','Mega mess'),
('FB','First Block mess'),
('SB','Second Block mess'),
('TB','Third Block mess'),
)
mess_name = models.CharField(max_length=25, choices =MESS_NAME,primary_key=True)
per_day_cost = models.IntegerField()
def __str__(self):
return self.mess_name
class MessMenu(models.Model):
mess_name = models.ForeignKey(Mess)
day = models.DateField()
morning = models.TextField()
afternoon = models.TextField()
snacks = models.TextField()
dinner = models.TextField()
def __str__(self):
return self.mess_name
一旦我在MessMenu中创建对象,我希望django在7天后删除该对象。请让我知道如何在给定的时间段后删除某个对象。如何删除特定日期后django中的某个模型实例
答
将creation_date添加到您的模型中。
如果这种模式属于用户:检查时
用户登录,否则你写你访问模型之前,你总是调用一个方法的任何车型都已经过时。如果您可以访问模型,则返回True,如果已过时,则返回False。如果它返回False,则删除它。
或者你写一个看门狗。
答
menudeleted = MessMenu.objects.filter(day__lt = timezone.now())
for m in menudeleted:
m.delete()
menu = MessMenu.objects.all()
你需要写检查的是7天前的代码,然后删除它们......然后你需要一种方法来调用代码。 – Sayse
你能否详述@Sayse – yogs