我使用的是python 3.4,Django 1.7.1(本书中考虑的版本),Postgres 9.3,我的IDE是Eclipse.
我一直在研究"轻量级Django - Elman和Lavin"这本书,我在第4章和第5章中已经被困了几天,我们应该使用其余的框架和backbone.js.例如,见
几天前,我试图通过本书中提供的myseld进行编码,并检查上面链接中提供的示例.但是,由于我没有继续,我决定复制上面链接中提供的代码并尝试运行.出现了同样的错误:
AssertionError at /
Relational field must provide a `queryset` argument, or set read_only=`True`.
Request Method: GET
Request URL: http://127.0.0.1:8000/
Django Version: 1.7.1
Exception Type: AssertionError
Exception Value:
Run Code Online (Sandbox Code Playgroud)
关系字段必须提供queryset参数,或设置read_only = True.
Exception Location: /usr/local/lib/python3.4/dist-packages/rest_framework/relations.py in __init__, line 35
Python Executable: /usr/bin/python3
Python Version: 3.4.0
Python Path:
['/home/daniel/workspace/Scrum',
'/usr/lib/python3.4',
'/usr/lib/python3.4/plat-i386-linux-gnu',
'/usr/lib/python3.4/lib-dynload',
'/usr/local/lib/python3.4/dist-packages',
'/usr/lib/python3/dist-packages']
Run Code Online (Sandbox Code Playgroud)
这个错误出现在"relations.py"中,它属于django-rest-framework.因为我使用的是上面链接中提供的确切代码,所以它应该没有错误.实际上,我改变了唯一的一段代码在settings.py中(重复发生错误后):
之前:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'scrum',
}
}
Run Code Online (Sandbox Code Playgroud)
现在:
DATABASES …Run Code Online (Sandbox Code Playgroud)