Django选择。如何将选项设置为仅在

2024-04-26 00:35:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写博客。我有一个部门,那里将有一个特别职位。还有一个页面,我收集了一些特别的帖子。这是我的型号.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', )

特殊岗位只能有一个岗位。新增专岗时,应将原有专岗转为非在职专岗。所以可以在收藏专页上显示。我该怎么做?你知道吗


Tags: pymodelmodels职位页面post帖子class
2条回答

当您添加一篇新文章时,像这样过滤查询change_actual_post = Post.objects.get(specialpost=0),然后更改旧文章的状态change_actual_post.specialpost = 2最后保存change_actual_post.save()。你知道吗

将这3行添加到视图.py新增专岗前归档

正如@neeraj kumar在评论中提到的,您可以通过重写模型的save()方法来实现这一点。在课后添加如下内容:

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)

相关问题 更多 >

    热门问题