Hi,
first of all, thank you all for your excellent work; after the qs-rf branch merge, there is a small regression that cause a python error in where.py during an update() if a custom Manager tries to .filter() thru a ManyToManyField? in get_query_set().
This breaks, for example, CurrentSiteManager? with a M2M 'site' field.
So, if you have a model like:
from django.db import models
from django.contrib.sites.models import Site
from django.contrib.sites.managers import CurrentSiteManager
class Dummy(models.Model):
dumb = models.TextField()
site = models.ManyToManyField(Site)
objects = CurrentSiteManager()
def dummy_view(request):
t = Dummy.objects.create(dumb='abc')
t.site.add(settings.SITE_ID)
t.save()
t.save() would give a TypeError?: object of type 'Query' has no len().
At some point, a Query object get passed to make_atom rather than a list.
This is the traceback:
Traceback:
File "D:\Arturo\django\core\handlers\base.py" in get_response
82. response = callback(request, *callback_args, **callback_kwargs)
File "D:\Arturo\arturo5\magazine\views_manager_article.py" in article_add
45. t.save()
File "D:\Arturo\django\db\models\base.py" in save
298. self.save_base()
File "D:\Arturo\django\db\models\base.py" in save_base
338. manager.filter(pk=pk_val)._update(values)
File "D:\Arturo\django\db\models\query.py" in _update
299. query.execute_sql(None)
File "D:\Arturo\django\db\models\sql\subqueries.py" in execute_sql
112. super(UpdateQuery, self).execute_sql(result_type)
File "D:\Arturo\django\db\models\sql\query.py" in execute_sql
1432. sql, params = self.as_sql()
File "D:\Arturo\django\db\models\sql\subqueries.py" in as_sql
136. where, params = self.where.as_sql()
File "D:\Arturo\django\db\models\sql\where.py" in as_sql
61. sql, params = self.make_atom(child, qn)
File "D:\Arturo\django\db\models\sql\where.py" in make_atom
130. return ('%s IN (%s)' % (field_sql, ', '.join(['%s'] * len(value))),
Exception Type: TypeError at /arturo/magazine/add/
Exception Value: object of type 'Query' has no len()