我正在写博客。我有一个部分,那里会有一个特别的帖子。和另一个页面,在那里我有收集的特别帖子。这是我的model.py
class Post(models.Model):
post = models.TextField()
SPECIAL = (
('0', 'Special Post'),
('1', 'General Post'),
('2', 'Inactive Special Post'),
)
specialpost = models.CharField(max_length=1, choices=SPECIAL, default='1', )特别职位中应该只有一个职位。新增特岗时,应将原来的特岗转换为不活跃的特岗。因此,它可以在特别帖子集合页面中显示。我该怎么做呢?
发布于 2017-07-09 12:21:12
正如@neeraj-kumar在评论中提到的,你可以通过覆盖模型的save()方法来实现这一点。添加到Post类中,如下所示:
class Post(models.Model):
...
def save(self, *args, **kwargs):
special_post = Post.objects.filter(specialpost='0')
if self.specialpost == '0' and special_post:
special_post.update(specialpost='2')
super(Post, self).save(*args, **kwargs)发布于 2017-07-09 12:22:15
添加新帖子时,像这样过滤查询,然后更改旧帖子的状态,最后保存change_actual_post.save()。
在添加新的特殊帖子之前,将这3行代码添加到views.py文件中
https://stackoverflow.com/questions/44992702
复制相似问题