Python模块故障



我正在学习使用python的cassandra对象映射器,并且我有以下小程序来填充数据库表。这很好...

from cassandra.cqlengine.connection import setup
from cassandra.cqlengine.management import sync_table
from cassandra.cqlengine.models import Model
from cassandra.cqlengine import columns
from uuid import uuid4
##import Courses
class Courses(Model):
    id = columns.UUID(primary_key = True)
    title  = columns.Text()
    duration = columns.Integer()
setup(['chelly', ], 'objectlake', protocol_version = 3)
# Create some courses to inflict on our hapless trainees
courses = [
    { 'title' : "Conflict of Interest" , 'duration' : 120 },
    { 'title' : "Resolving Conflict" ,   'duration' : 60 },
    { 'title' : "Time Cards" ,           'duration' : 30 },
    { 'title' : "PTO" ,                  'duration' : 30 },
    { 'title' : "Managing Upwards" ,     'duration' : 120 }
]
sync_table(Courses)
for course in courses:
    Courses.create(id = uuid4(), title = course['title'], duration = course['duration'])
print('Done-ish?')

,但是,如果我评论课程课程的定义并取消输入进口,则在课程中。

from cassandra.cqlengine.models import Model
from cassandra.cqlengine import columns
class Courses(Model):
    id = columns.UUID(primary_key = True)
    title  = columns.Text()
    duration = columns.Integer()

我在sync_table调用上获得了一个异常ValueError: Models must be derived from base Model.。我敢肯定,我已经把班级的声明转移到模块中,但是找不到我做错了什么。我不确定为什么我来自模块的对象不是模型。

当您进行import Courses时,名称Courses将参考模块称为 Courses,而不是 not> Courses恰好是在此模块内。

您使用的功能要求其参数从某个类别派生,而模块 Courses显然不满足此条件。

您可能打算将 class 这样称为 Courses

from Courses import Courses

最新更新