我希望通过它的django模型创建一个包含两个primary_key的表,如下所示:
class UserView(Model):
email= columns.Text(primary_key=True)
entryLink= columns.Text(primary_key=True)
date= columns.Date(default=datetime.date.today())但是,当我想要创建如下表时:
>>> from cqlengine import connection
>>> from cqlengine.management import create_table
>>> from MainAPP.models import UserView
>>> connection.setup(['127.0.0.1:9160'])
>>> create_table(UserView)我看到这个错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "H:\Web-Programming\Python\Project\Prexter\Virtual-Environment\Lib\site-packages\cqlengine\management.py", line 97, in create_table
execute(qs)
File "H:\Web-Programming\Python\Project\Prexter\Virtual-Environment\Lib\site-packages\cqlengine\connection.py", line 172, in execute
return connection_pool.execute(query, params)
File "H:\Web-Programming\Python\Project\Prexter\Virtual-Environment\Lib\site-packages\cqlengine\connection.py", line 164, in execute
raise CQLEngineException(unicode(ex))
CQLEngineException: Bad Request: Missing CLUSTERING ORDER for column entryLink当我从primary_key字段中删除entryLink属性时,没有错误!但是我想把entryLink定义为primary_key!我犯了什么错?
发布于 2013-07-12 17:43:38
数据库表不能有2个主键。如果您正在寻找复合主键,Django还不支持这一点。
现在,您可能需要的是unique=True (候选密钥)。
class UserView(Model):
email= columns.Text(primary_key=True)
entryLink= columns.Text(unique=True)
date= columns.Date(default=datetime.date.today())您还可以阅读为了更好的理解这篇文章
发布于 2013-07-13 00:04:51
我找到答案了!这是个有趣的虫子!我在entryLink字段中有一个大写字符,它导致了考虑的错误!这太有趣了!因为这只适用于primary_key!其他字段也不是这样!primary_keys在!中不可能有大写字符
我修改的代码:
class UserView(Model):
email= columns.Text(primary_key=True)
link= columns.Text(primary_key = True)
date= columns.Date(default=datetime.date.today())https://stackoverflow.com/questions/17620651
复制相似问题