赞
踩
小编我初学Django的时候跳了不少的坑,曾经一度想放弃。现在想想,幸亏没有哈。坚持学习持续改进才是王道啊,要不然老是中途放弃肯定一事无成。我记忆最为深刻的就是看着官网的入门教程练手,当我在模板里看到for choice in question.choice_set.all时, 心里快崩溃了。Question模型里根本没有choice_set这个字段或方法啊,这是什么鬼。后来得知这是Django进行反向查询的方式。今天小编我来专门总结下Django新手容易犯的常见错误,并教你如何避免choice_set那样的大坑。本文适合初学者,老鸟们请多指教啊。
模型坑
请仔细观察下面Django模型,你能找到几处坑呢? Django项目第一步就是写模型,如果你动笔没写5行就包含了一堆错误,相信你一定会先怀疑自己,然后再怀疑人生。
class Person(models.Model): name = models.CharField('Name') class Book(models.Model): name = models.TextField('Name', blank = True, null = True)
author = models.ForeignKey('Person', related_name='author')
答案是4个错误,你发现了吗? 如果你能找到更多错误,请留言。
Person模型中的CharField没有指定字符串最大长度max_length。CharField和TextField类似,都是字符串,区别在于CharField必需要设置max_length, 而对TextField而言max_length是可选的。这在数据库层面是有用的,设置最大长度可以帮助节省数据库空间。
Book模型中ForeignKey应该是Person,而不是'Person'。加了引号就把Person变成普通的字符串了,变成verbose_name了。
如果你设置了ForeignKey,on_
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。