从 Django 1.6.11 升级到 1.7 时,我遇到了一个有趣的问题。这似乎是基于我目前分割文件的方式。目前,由于方法数量庞大,模型方法与模型存储在单独的文件中。
例如,它被拆分如下:
help
|_ modelmethods
| |_ __init__.py
| |_ thread_methods.py
|_ __init__.py
|_ models.py
Run Code Online (Sandbox Code Playgroud)
帮助应用程序文件夹中的内容__init__.py如下所示:
""" __init__.py for help app."""
from help.modelmethods.thread_methods import *
Run Code Online (Sandbox Code Playgroud)
thread_methods.py 看起来像这样:
"""Methods for the Thread model."""
from help.models import Thread
class ThreadMethods:
"""Adds methods on to the Thread model."""
def do_the_thing(self):
pass
Thread.__bases__ += (ThreadMethods,)
Run Code Online (Sandbox Code Playgroud)
我从中看到的错误如下:
Migrations for 'help':
0001_initial.py:
- Create model Thread
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File …Run Code Online (Sandbox Code Playgroud) 我似乎得到了一个相当奇怪的错误.而且,对于我的生活,我无法弄清楚出了什么问题.但是在一段SQLite代码上,我收到了这个错误:
Traceback (most recent call last):
File "test.py", line 38, in <module>
populateTables()
File "test.py", line 20, in populateTables
curs.execute("SELECT * FROM tracks WHERE ISRC = " + line[8])
sqlite3.OperationalError: no such column: USTCZ0993316
Run Code Online (Sandbox Code Playgroud)
奇怪的是,USTCZ0993316是我要比较的一段数据.我不知道为什么它似乎认为它是一个专栏.这是一个很小的版本,它给出了同样的问题.
import sqlite3
import csv
def tableSetup(name):
if(name=="tracks"):
curs.execute("CREATE TABLE tracks(id INT UNIQUE, name TINYTEXT, album_id INT, client_id INT, acr_record_num INT, ISRC TINYTEXT UNIQUE, track_length TINYTEXT, client_share FLOAT)")
def populateTables():
tracks_csv=csv.reader(open('tables/tracks.csv', 'rU'), delimiter=";", quotechar='"')
tracks_csv.next()
for line in tracks_csv:
curs.execute("SELECT * FROM tracks WHERE id = …Run Code Online (Sandbox Code Playgroud)