Open bcdickinson opened 2 years ago
While working around this in my project, I found that we're missing FakeQuerySet.iterator()
too. Here's my hack du jour that seems to be working nicely for the time being:
def monkey_patch_fakequeryset():
FakeQuerySet._prefetch_related_lookups = ()
def fakequeryset_iterator(self):
return self
FakeQuerySet.iterator = fakequeryset_iterator
monkey_patch_fakequeryset()
Hi, I just wanted to say that I got the same error, and the proposal by bcdickinson seems to be a good one!
I am using the latest version of Wagtail 2.16.2, Django 3.2.13 and getting this error when previewing certain wagtailpages which contain ClusterableModels and ParentalManyToManyFields: 'FakeQuerySet' object has no attribute '_prefetch_related_lookups'
Hi, I created a patch: https://github.com/wagtail/django-modelcluster/pull/163
It only adds a _prefetch_related_lookups objects. I did not add an iterator because I did not run into that bug (and couldn't test)
Bug
FakeQuerySet
doesn't have a_prefetch_related_lookups
member, so Django throws an attribute error when using it as thequeryset
kwarg to aModelChoiceField
, here: https://github.com/django/django/blob/3.2.12/django/forms/models.py#L1167My guess at a solution at this moment in time is to just add
_prefetch_related_lookups = ()
toFakeQuerySet.__init__()
, but I'm not 100% sure that's the right answer.Context
I'm creating a
QuestionPage
that has multiple choice questions on it.QuestionPage
s have manyQuestion
s which in turn have manyAnswers
. I generate aForm
to use on the page and that works fine, but it breaks when I'm previewing the page with the following error:Here's a sketch: