我正在为我的车库做一个爱好项目。我被引导到django-model-utils以满足我的需要。 (我有串口数控机床,串口机有两种流量控制方法)
我有一个SerialMachine的父类(定义地址,波特率,通用RS-232定义)
然后我有继承自SerialMachine的HardwareFlowControlMachine模型(定义CTS / DTR / etc)
因此,当我将机器名称放入表格(比如机器001)时,我有一个能够获得机器设置的功能。
def getMachineSettings(machine):
from src.apps.cnc.models import SerialMachine
machineSettings = SerialMachine.objects.get(machineName=machine).select_subclasses()
return machineSettings
我得到了这个例外:
DatabaseError: no such column: cnc_hardwareflowcontrolmachine.serialmachine_ptr_id
现在进行测试我在SoftwareFlowControlMachine中只有一台机器(硬件中没有)
我想也许HardwareFlowControlMachine无论出于何种原因都需要至少一个对象。所以当我去/ admin /并尝试将一台机器添加到SoftwareFlowControlMachine或HardwareFlowControlMachine时,我得到了这个例外:
HardwareFlowControlMachine:
DatabaseError at /admin/cnc/hardwareflowcontrolmachine/
no such column: cnc_hardwareflowcontrolmachine.serialmachine_ptr_id
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/cnc/hardwareflowcontrolmachine/
Django Version: 1.4
Exception Type: DatabaseError
Exception Value:
no such column: cnc_hardwareflowcontrolmachine.serialmachine_ptr_id
Exception Location: C:\Python27\lib\site-packages\django\db\backends\sqlite3\base.py in execute, line 337
Python Executable: C:\Python27\python.exe
Python Version: 2.7.2
SoftwareFlowControlMachine:
DatabaseError at /admin/cnc/softwareflowcontrolmachine/
no such column: cnc_softwareflowcontrolmachine.serialmachine_ptr_id
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/cnc/softwareflowcontrolmachine/
Django Version: 1.4
Exception Type: DatabaseError
Exception Value:
no such column: cnc_softwareflowcontrolmachine.serialmachine_ptr_id
Exception Location: C:\Python27\lib\site-packages\django\db\backends\sqlite3\base.py in execute, line 337
Python Executable: C:\Python27\python.exe
Python Version: 2.7.2
如果我需要提供更多信息,请告诉我。我真的不确定我错过了什么
答案 0 :(得分:0)
我得到了它的工作。我现在还不清楚它为什么会发生。我犯的错误是
machineSettings = SerialMachine.objects.get(machineName=machine).select_subclasses()
我需要这个
machineSettings = SerialMachine.objects.get_subclass(machineName=machine)
我也刚刚删除了我的数据库并重新制作了它。
希望这也有助于其他人