django-modeltrans icon indicating copy to clipboard operation
django-modeltrans copied to clipboard

Error message from query made from model without MultilingualManager is vague.

Open jieter opened this issue 6 years ago • 0 comments

Traceback looks like this:

Traceback (most recent call last):
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/core/paginator.py", line 85, in count
    return self.object_list.count()
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/query.py", line 387, in count
    print(repr(self))
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/query.py", line 248, in __repr__
    data = list(self[:REPR_OUTPUT_SIZE + 1])
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/query.py", line 272, in __iter__
    self._fetch_all()
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/query.py", line 1180, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/query.py", line 53, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1055, in execute_sql
    sql, params = self.as_sql()
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 461, in as_sql
    where, w_params = self.compile(self.where) if self.where is not None else ("", [])
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 393, in compile
    sql, params = node.as_sql(self, self.connection)
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/sql/where.py", line 80, in as_sql
    sql, params = compiler.compile(child)
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 393, in compile
    sql, params = node.as_sql(self, self.connection)
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/sql/where.py", line 80, in as_sql
    sql, params = compiler.compile(child)
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 393, in compile
    sql, params = node.as_sql(self, self.connection)
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/lookups.py", line 160, in as_sql
    lhs_sql, params = self.process_lhs(compiler, connection)
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/lookups.py", line 151, in process_lhs
    lhs_sql, params = super().process_lhs(compiler, connection, lhs)
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/lookups.py", line 78, in process_lhs
    return compiler.compile(lhs)
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 393, in compile
    sql, params = node.as_sql(self, self.connection)
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/expressions.py", line 743, in as_sql
    return "%s.%s" % (qn(self.alias), qn(self.target.column)), []
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 384, in quote_name_unless_alias
    r = self.connection.ops.quote_name(name)
  File "/Users/jieter/.virtualenvs/meetnetten/lib/python3.6/site-packages/django/db/backends/postgresql/operations.py", line 98, in quote_name
    if name.startswith('"') and name.endswith('"'):
AttributeError: 'NoneType' object has no attribute 'startswith'

When doing something like Category.objects.filter(blog__title_i18n__icontains='django') with these models:

class Category(models.Model):
    title = models.CharField(max_length=255)

class Blog(models.Model):
    title = models.CharField(max_length=255)
    body = models.TextField(null=True)
    category = models.ForeignKey(Category, null=True, blank=True, on_delete=models.CASCADE)

    i18n = TranslationField(fields=("title", "body"))

It would be nice if you could provide a friendly message.

jieter avatar Jul 15 '18 18:07 jieter