django 开发过程中遇到问题可在相关分类下提问,我每天都会来解答。

  • 21 回复 | 直到 2016年12月20日 22:14
    • aka
    • 1 楼

    我来测试的 呵呵呵 站长学django多长时间?

  • @aka 👍🏻,半年多了。

    • abird
    • 3 楼

    设置中的个人资料显示的邮箱不对

  • @abird 谢谢,马上修复。

  • @abird 已修复,thanks!

  • 这是我的models文件from future import unicode_literals

    from django.db import models class Tag(models.Model): tag_name = models.CharField(max_length=20) create_time = models.DateTimeField(auto_now_add=True) def unicode(self): return self.tag_name class Classification(models.Model): name = models.CharField(max_length=20) def unicode(self): return self.name class Author(models.Model): name = models.CharField(max_length=30) email = models.EmailField(blank=True) website = models.URLField(blank=True) def unicode(self): return u'%s' % (self.name) class Article(models.Model): caption = models.CharField(max_length=30) subcaption = models.CharField(max_length=50,blank=True) publish_time = models.DateTimeField(auto_now_add=True) update_time = models.DateTimeField(auto_now = True) author = models.ForeignKey(Author) classification = models.ForeignKey(Classification) tags = models.ManyToManyField(Tag, blank=True) content = models.TextField()

    后台提交 author classification 为空就错误 怎么办

  • @test 代码乱掉了,可否贴成 markdown 的格式? 用下面的格式。

    
    

    你的代码

    
    
  • @test 再次更正,这样的格式

    ``` 你的代码 ```

  • @test 再次更正:

    ```

    你的代码

    ```

    看来我们需要一款好的文本编辑器了!

  • @test 当然从你代码来看,好像你没有给 classification 加非空限制,所以当 classification 为空时数据库不允许你存数据,改成 classification = models.ForeignKey(Classification, blank=True, null=True)

  • 很好啊 跟知乎有点类似

  • 更多的还是仿照www.v2ex.com啦@test

  • ““” from future import unicode_literals

    from django.db import models class Tag(models.Model): tag_name = models.CharField(max_length=20) create_time = models.DateTimeField(auto_now_add=True) def unicode(self): return self.tag_name class Classification(models.Model): name = models.CharField(max_length=20) def unicode(self): return self.name class Author(models.Model): name = models.CharField(max_length=30) email = models.EmailField(blank=True) website = models.URLField(blank=True) def unicode(self): return u'%s' % (self.name) class Article(models.Model): caption = models.CharField(max_length=30) subcaption = models.CharField(max_length=50,blank=True) publish_time = models.DateTimeField(auto_now_add=True) update_time = models.DateTimeField(auto_now = True) author = models.ForeignKey(Author) classification = models.ForeignKey(Classification, blank=True, null=True) tags = models.ManyToManyField(Tag, blank=True) content = models.TextField() “””

  • from future import unicode_literals

    from django.db import models class Tag(models.Model): tag_name = models.CharField(max_length=20) create_time = models.DateTimeField(auto_now_add=True) def unicode(self): return self.tag_name class Classification(models.Model): name = models.CharField(max_length=20) def unicode(self): return self.name class Author(models.Model): name = models.CharField(max_length=30) email = models.EmailField(blank=True) website = models.URLField(blank=True) def unicode(self): return u'%s' % (self.name) class Article(models.Model): caption = models.CharField(max_length=30) subcaption = models.CharField(max_length=50,blank=True) publish_time = models.DateTimeField(auto_now_add=True) update_time = models.DateTimeField(auto_now = True) author = models.ForeignKey(Author) classification = models.ForeignKey(Classification, blank=True, null=True) tags = models.ManyToManyField(Tag, blank=True) content = models.TextField()

  • from future import unicode_literals

    from django.db import models class Tag(models.Model): tag_name = models.CharField(max_length=20) create_time = models.DateTimeField(auto_now_add=True) def unicode(self): return self.tag_name class Classification(models.Model): name = models.CharField(max_length=20) def unicode(self): return self.name class Author(models.Model): name = models.CharField(max_length=30) email = models.EmailField(blank=True) website = models.URLField(blank=True) def unicode(self): return u'%s' % (self.name) class Article(models.Model): caption = models.CharField(max_length=30) subcaption = models.CharField(max_length=50,blank=True) publish_time = models.DateTimeField(auto_now_add=True) update_time = models.DateTimeField(auto_now = True) author = models.ForeignKey(Author) classification = models.ForeignKey(Classification, blank=True, null=True) tags = models.ManyToManyField(Tag, blank=True) content = models.TextField()

  • @追梦人物 非常抱歉。。。我不是故意刷屏 而是我用了markdown编辑之后 在贴过来还是会格式乱了 。。。我好无奈

    上面那个classification加上一个null= True之后问题解决了 但是author加上这句话之后会有报错 Please correct the error below.This field is required 按照我看的那个教程又做了一遍还是有这个问题 教程链接:http://www.tuicool.com/articles/uMb6Z3A

    在这里先谢谢楼主了

  • @test 没事,这可以随意刷屏。

    建议删掉数据库,删掉 migrations 文件后重新迁移数据库。

    由于你的 author 没有指定 null= True,因此确保你在创建文章时指定了 author,否则 django 表单不会通过验证,但如果你绕过表单验证,django 则会抛出数据库约束错误。

  • @test 更加详细的教程可以看置顶帖发的一套博客教程。目前我也在重置一套更加详细和面向新人的教程。

  • haoba 好吧 我重新按照你这个教程上面一点一点做了 可是 还是有问题

    依然是添加blog页面上 最后(分类)不能为空 然而 他分类下面根本什么都没有 设置成非空的话还是会报错 跟上面问题一样 Please correct the error below.This field is required

    这个问题一直遇到 两天了 解决不了 真心找不到

  • 我明白你的问题了,我们默认设置必须填写分类的,你是在 Django 的 admin 后台添加文章么?你先添加一个分类,然后就可以给文章指定分类了。如果你要设置分类为空,设置 null 和 blank 都为 true。然后删掉 migrations 文件夹下的迁移文件,然后删掉数据库重新运行 manage.py makemigrations 和 migrate 创建数据库。@test

添加一条新回复
登录以回复