如何删除特定日期后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中的某个模型实例

+0

你需要写检查的是7天前的代码,然后删除它们......然后你需要一种方法来调用代码。 – Sayse

+0

你能否详述@Sayse – yogs

将creation_date添加到您的模型中。

如果这种模式属于用户:检查时

用户登录,否则你写你访问模型之前,你总是调用一个方法的任何车型都已经过时。如果您可以访问模型,则返回True,如果已过时,则返回False。如果它返回False,则删除它。

或者你写一个看门狗。

menudeleted = MessMenu.objects.filter(day__lt = timezone.now()) 
    for m in menudeleted: 
     m.delete() 
menu = MessMenu.objects.all() 

use basic comparison filter过滤日期