2009-12-21 34 views
3

我希望得到一个对象以下列方式对象时:Django的KeyError异常得到与字段名称关键字

Collection.objects.get(name='name', type='library', owner=owner, parent=parent) 

不幸type是一个关键字,如因此产生以下错误:

KeyError at /forms/create_library 
type 

有没有办法消除单词type的含义以允许指定该名称的字段?

+3

通过将'type'字段重命名为不是保留字的东西,可能会更好地解决此问题。 – 2009-12-21 12:24:43

+0

是的,你是对的,为了将来的参考是有办法做我试图? – 2009-12-21 12:26:06

回答

3

未测试:

Collection.objects.filter(
    name__exact='name', 
    type__exact='library', 
    owner__exact=owner, 
    parent__exact=parent) 

查询文档:http://docs.djangoproject.com/en/dev/topics/db/queries/

还要考虑不同的命名你的领域,主要是没有使用相同的名称作为内置。

+1

这似乎并不能解决这个错误,但正如大家所提到的,我会将字段名称更改为更合适的选择。 – 2009-12-21 12:31:37

0

好吧,事实证明,问题在别处。我是这样做的,因此使用输入值的字典。

我试图检索self.cleaned_data['type']在我以前的简化中,我指出了字符串'库'。这实际上并不在表格的清理数据中,因此抛出了KeyError