1

私はガレージ ショップの趣味のプロジェクトに取り組んでいます。必要なものについては、django-model-utils に案内されました。(私はシリアル CNC マシンを持っています。シリアル マシンには 2 つのフロー制御方法があります)

SerialMachine の親クラスがあります (アドレス、ボーレート、一般的な RS-232 定義を定義します)

次に、SerialMachine (CTS/DTR/etc を定義) から継承する HardwareFlowControlMachine モデルがあります。

したがって、マシン名をフォームに入力すると(マシン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 には 1 台のマシンしかありません (ハードウェアにはありません)。

おそらく、HardwareFlowControlMachine には何らかの理由で少なくとも 1 つのオブジェクトが必要だと思いました。/admin/ に移動して、マシンを SoftwareFlowControlMachine または 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

さらに情報を提供する必要がある場合はお知らせください。何が欠けているのか本当にわかりません

4

1 に答える 1

0

私はそれを働かせました。なぜそれが起こったのかはまだ不明です。私が犯した間違いは、代わりに

 machineSettings = SerialMachine.objects.get(machineName=machine).select_subclasses()

これが必要だった

 machineSettings = SerialMachine.objects.get_subclass(machineName=machine)

また、データベースを削除して作り直しました。

これが他の人にも役立つことを願っています

于 2012-04-19T06:34:28.273 に答える