首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django选择。如何将选项设置为只选一次

Django选择。如何将选项设置为只选一次
EN

Stack Overflow用户
提问于 2017-07-09 11:33:04
回答 2查看 111关注 0票数 0

我正在写博客。我有一个部分,那里会有一个特别的帖子。和另一个页面,在那里我有收集的特别帖子。这是我的model.py

代码语言:javascript
复制
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', )

特别职位中应该只有一个职位。新增特岗时,应将原来的特岗转换为不活跃的特岗。因此,它可以在特别帖子集合页面中显示。我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-09 12:21:12

正如@neeraj-kumar在评论中提到的,你可以通过覆盖模型的save()方法来实现这一点。添加到Post类中,如下所示:

代码语言:javascript
复制
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)
票数 1
EN

Stack Overflow用户

发布于 2017-07-09 12:22:15

添加新帖子时,像这样过滤查询,然后更改旧帖子的状态,最后保存change_actual_post.save()

在添加新的特殊帖子之前,将这3行代码添加到views.py文件中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44992702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档