外键

2013-01-16 97 views
0

我的架构:外键

class Component(): 
    comp_id = models.CharField('Component ID', primary_key=True, db_column='comp_id') 
    path = models.CharField('Path') 

    def __unicode__(self): 
    return self.path 

class Configuration(): 
    config_id = Models.AutoField('Config ID', db_column='config_id', primary_key=True) 
    component = models.ForeignKey('Component', db_column='component') 
    org_id = models.Integer.Field('Org ID') 

    def __unicode__(self): 
    return "{} + {}".format(self.org_id, self.component) 

class Result(): 
    result_id = Models.AutoField('Result ID', db_column='result_id', primary_key=True) 
    config = models.ForeignKey('Configuration', db_column='config') 

在变化形式的结果,我期待的配置外键通过下拉来表示。但是,页面不会呈现,并且我得到DatabaseError异常,并显示以下消息:“尝试启动新的SQL Server操作,并等待结果。”我认为正在发生的事情是,Result.config下拉菜单尝试解析配置的unicode表示,但这意味着要深入一个外键级别来解析相关组件的unicode,并且数据库不会允许它。任何人都可以看到解决此错误的方法

+0

我不认为这是数据库错误的原因。这是完全正常的事情,并且不应该导致问题。您是否尝试通过更改'__unicode__'方法来确认您的怀疑,以便它不引用ForeignKey? –

+0

是的,如果我从配置.__ unicode__中删除self.component,那么一切都很好。 – Lefunque

回答

0

原来我安装依赖于一个定制的DB后端为MS SQL Server和我需要修改它的base.py文件,包括在DatabaseFeatures类下面一行:

can_use_chunked_reads = False