PK lookup bug

13 views
Skip to first unread message

alTus

unread,
Nov 25, 2010, 4:19:23 PM11/25/10
to eav-django
К сожалению, так с работой и не выбрался, чтобы форкнуть и новое поле
выложить, но сейчас наткнулся на, по всей видимости, довольно
неожиданный баг.
Суть в том, что для моделей типа BaseEntity перестает работать шорткат
PK, что довольно критично при использовании content types и всего в
этом духе.
(Я, например, наткнулся когда перестали работать некоторые функции из
стороннего прриложения комментариев, которые обращались к объектам
BaseEntity как раз через PK, а не через поле id.)

Ниже исправление.

----------------------------------------------------------------------
# managers.py

def _filter_by_lookup(self, qs, lookup, value):

# TODO: refactor (make recursive resolving of sublookups)

fields = self.model._meta.get_all_field_names()
schemata = None

if '__' in lookup:
name, sublookup = lookup.split('__', 1)
else:
name, sublookup = lookup, None
+
+ if name == 'pk':
+ name = self.model._meta.pk.name
----------------------------------------------------------------------

Andy Mikhaylenko

unread,
Nov 27, 2010, 4:50:44 AM11/27/10
to eav-django
Спасибо! Завел тикет:
http://bitbucket.org/neithere/eav-django/issue/1/pk-shortcut-broken-is-queries

Исправление доступно на PyPI в версии 1.3.4.

Reply all
Reply to author
Forward
0 new messages