Friday, December 4, 2015

Re: Nested ArrayField error in 1.9

Hi,

This looks like a regression bug to me. We don't actually test nested array
checks so I assume this scenario was overlooked when we this check was added.

I think the bugs lies in the contrib.postgres component since the check errors
on a fairly reasonable assumption: bounded fields should have a `model`
attribute.

Please file a new bug ticket[1] for 1.9.

Thanks,
Simon

[1] https://code.djangoproject.com/newticket

Le vendredi 4 décembre 2015 07:16:32 UTC-5, J. Gourds a écrit :
Nested ArrayField seems to be broken in 1.9, it creates an error when running the system checks.

Using a nested ArrayField from the docs will cause the error in 1.9 (but works on 1.8.7):

models.py:
from django.contrib.postgres.fields import ArrayField
from django.db import models

class Board(models.Model):
    pieces = ArrayField(ArrayField(models.IntegerField()))

When running runserver on an new project with this model on 1.9 it triggers the following error:

Unhandled exception in thread started by <function wrapper at 0xb61e3844>
Traceback (most recent call last):
  File "/home/vagrant/.virtualenvs/djangotest/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "/home/vagrant/.virtualenvs/djangotest/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 116, in inner_run
    self.check(display_num_errors=True)
  File "/home/vagrant/.virtualenvs/djangotest/local/lib/python2.7/site-packages/django/core/management/base.py", line 426, in check
    include_deployment_checks=include_deployment_checks,
  File "/home/vagrant/.virtualenvs/djangotest/local/lib/python2.7/site-packages/django/core/checks/registry.py", line 75, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/home/vagrant/.virtualenvs/djangotest/local/lib/python2.7/site-packages/django/core/checks/model_checks.py", line 28, in check_all_models
    errors.extend(model.check(**kwargs))
  File "/home/vagrant/.virtualenvs/djangotest/local/lib/python2.7/site-packages/django/db/models/base.py", line 1170, in check
    errors.extend(cls._check_fields(**kwargs))
  File "/home/vagrant/.virtualenvs/djangotest/local/lib/python2.7/site-packages/django/db/models/base.py", line 1247, in _check_fields
    errors.extend(field.check(**kwargs))
  File "/home/vagrant/.virtualenvs/djangotest/local/lib/python2.7/site-packages/django/contrib/postgres/fields/array.py", line 49, in check
    base_errors = self.base_field.check()
  File "/home/vagrant/.virtualenvs/djangotest/local/lib/python2.7/site-packages/django/contrib/postgres/fields/array.py", line 49, in check
    base_errors = self.base_field.check()
  File "/home/vagrant/.virtualenvs/djangotest/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py", line 1820, in check
    errors = super(IntegerField, self).check(**kwargs)
  File "/home/vagrant/.virtualenvs/djangotest/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py", line 208, in check
    errors.extend(self._check_backend_specific_checks(**kwargs))
  File "/home/vagrant/.virtualenvs/djangotest/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py", line 314, in _check_backend_specific_checks
    app_label = self.model._meta.app_label
AttributeError: 'IntegerField' object has no attribute 'model'

Am I missing something? Non nested ArrayField works ok, just a nested ArrayField triggers the problem.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/71fb5438-d582-4d0f-bd23-ede5d5750bb5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment