Django教程第二部分字段错误求助:Python3.6+Django1.11环境
解决Django 1.11中Question模型字段过滤的错误问题
看起来你在跟着Django教程第二部分操作时踩了个常见的小坑,我来帮你一步步排查问题:
1. 先核对Question模型的字段定义
首先打开你的models.py,确认Question类里的question_text字段是不是正确定义了——它应该是CharField或者TextField类型,比如:
from django.db import models class Question(models.Model): question_text = models.CharField(max_length=200) # 重点检查这个字段 pub_date = models.DateTimeField('date published') def __str__(self): return self.question_text
如果字段名写错了(比如写成question或者q_text),或者根本没定义这个字段,执行question_text__startswith查询时肯定会触发字段错误。
2. 确认数据库迁移已同步
就算模型定义没问题,要是没把模型变更同步到数据库,数据库里根本没有这个字段,自然会报错。请在终端里按顺序执行这两条命令:
python manage.py makemigrations python manage.py migrate
执行完后重新打开python manage.py shell再试一次查询命令。
3. 检查shell中的模型导入路径
有时候在shell里导入错了模型也会出问题,确保你是从自己的应用里导入的Question模型:
from your_app_name.models import Question # 把your_app_name换成你实际的应用名称,比如polls
如果导入的是其他地方的Question模型(比如第三方包的),那肯定找不到你定义的question_text字段。
4. 提供具体错误信息(如果以上都没用)
如果上面几步都排查完还是有问题,你可以把报错的完整内容贴出来吗?比如类似FieldError: Cannot resolve keyword 'question_text' into field. Choices are: pub_date, id这样的提示,里面会列出当前模型可用的所有字段,对比一下就能快速定位问题所在。
内容的提问来源于stack exchange,提问作者Karachay
相关产品推荐
相关产品推荐

