7-7完成后发现 数据库中 Status 依旧不能修改

来源:7-7 通用类视图CreateView源码详解

1cho糖糖

2019-05-27

在完成7-7的form表单代码修改后依旧不能变更status的状态值,
查看了一下js也对值进行了修改但是提交表单后数据库保存的status依旧是D
图片描述

还有一个问题就是当forms.py中修改加上status后偶尔会出现form表单提交没反应,点击发表或者保存草稿都只是页面刷新,没有进入到成功跳转。(只要出现过一次提交没反应后无论再怎么提交都不会成功)
图片描述

即使我提交表单的时候讲status内容设置为P去发表,存到数据库的时候依旧显示是D
保存草稿的话一直都是默认值D。
图片描述

models.py的代码

@python_2_unicode_compatible
class Article(models.Model):

    STATUS = (("D", "Draft"), ("P", "Published"))

    title = models.CharField(max_length=225, unique=True, verbose_name="标题")    # unique=True 标题唯一
    user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True, on_delete=models.SET_NULL,
                             related_name="author", verbose_name="作者")
    image = models.ImageField(upload_to="articles_pictures/%Y/%m/%d/", verbose_name="文章图片")
    slug = models.SlugField(max_length=255, verbose_name="(ULR)别名")
    status = models.CharField(max_length=1, choices=STATUS, default="D", verbose_name="状态")
    content = MarkdownxField(verbose_name="内容")
    edited = models.BooleanField(default=False, verbose_name="是否可编辑")
    tags = TaggableManager(help_text="多个标签使用,(英文)隔开", verbose_name="标签")
    created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
    updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间")
    objects = ArticleQuerySet.as_manager()
写回答

2回答

Jack

2019-05-28

想起来了,class Meta中应该加上‘status’, 'edited'

//img.mukewang.com/szimg/5ceccc970001f0d914550343.jpg

在第7-14小节 2分20秒的时候有补讲,当时录的时候忘了,抱歉

0
1
1cho糖糖
非常感谢!
2019-05-28
共1条回复

Jack

2019-05-27

7-7 讲解的是CreateView的源码,你是要改文章的状态吗?

0
1
1cho糖糖
7-7视频开头有讲在表单中加入status,通过js修改status默认值, 我重新把问题编辑了一下。
2019-05-27
共1条回复

Django高级实战 开发企业级问答网站

融合Django高级用法/算法/设计模式/TestCase测试/云计算打造项目

908 学习 · 757 问题

查看课程