Wagtail: Field named "url" gives an error

Created on 19 Sep 2015  路  3Comments  路  Source: wagtail/wagtail

Naming a field "url" results in an error. Renaming this field to "link" just works.

Is this a reserved word??

Environment:

Request Method: GET
Request URL: http://localhost:8000/manager/pages/3/edit/

Django Version: 1.8.4
Python Version: 3.4.2
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'compressor',
'taggit',
'modelcluster',
'wagtail.wagtailcore',
'wagtail.wagtailadmin',
'wagtail.wagtaildocs',
'wagtail.wagtailsnippets',
'wagtail.wagtailusers',
'wagtail.wagtailimages',
'wagtail.wagtailembeds',
'wagtail.wagtailsearch',
'wagtail.wagtailsites',
'wagtail.wagtailredirects',
'wagtail.wagtailforms',
'design_offerte.common',
'design_offerte.product')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'wagtail.wagtailcore.middleware.SiteMiddleware',
'wagtail.wagtailredirects.middleware.RedirectMiddleware')

Traceback:
File "/Users/spoetnik/.virtualenvs/design-offerte/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response

  1. response = wrapped_callback(request, _callback_args, *_callback_kwargs)
    File "/Users/spoetnik/.virtualenvs/design-offerte/lib/python3.4/site-packages/django/views/decorators/cache.py" in _cache_controlled
  2. response = viewfunc(request, _args, *_kw)
    File "/Users/spoetnik/.virtualenvs/design-offerte/lib/python3.4/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  3. return view_func(request, _args, *_kwargs)
    File "/Users/spoetnik/.virtualenvs/design-offerte/lib/python3.4/site-packages/wagtail/wagtailadmin/views/pages.py" in edit
  4. page = get_object_or_404(Page, id=page_id).get_latest_revision_as_page()
    File "/Users/spoetnik/.virtualenvs/design-offerte/lib/python3.4/site-packages/wagtail/wagtailcore/models.py" in get_latest_revision_as_page
  5. return latest_revision.as_page_object()
    File "/Users/spoetnik/.virtualenvs/design-offerte/lib/python3.4/site-packages/wagtail/wagtailcore/models.py" in as_page_object
  6. obj = self.page.specific_class.from_json(self.content_json)
    File "/Users/spoetnik/.virtualenvs/design-offerte/lib/python3.4/site-packages/modelcluster/models.py" in from_json
  7. return cls.from_serializable_data(json.loads(json_data), check_fks=check_fks, strict_fks=strict_fks)
    File "/Users/spoetnik/.virtualenvs/design-offerte/lib/python3.4/site-packages/modelcluster/models.py" in from_serializable_data
  8. obj = model_from_serializable_data(cls, data, check_fks=check_fks, strict_fks=strict_fks)
    File "/Users/spoetnik/.virtualenvs/design-offerte/lib/python3.4/site-packages/modelcluster/models.py" in model_from_serializable_data
  9. obj = model(kwargs)
    File "/Users/spoetnik/.virtualenvs/design-offerte/lib/python3.4/site-packages/wagtail/wagtailcore/models.py" in **init
  10. super(Page, self).init(_args, *_kwargs)
    File "/Users/spoetnik/.virtualenvs/design-offerte/lib/python3.4/site-packages/modelcluster/models.py" in init
  11. super(ClusterableModel, self).init(_args, *_kwargs)
    File "/Users/spoetnik/.virtualenvs/design-offerte/lib/python3.4/site-packages/django/db/models/base.py" in init
  12. setattr(self, field.attname, val)

Exception Type: AttributeError at /manager/pages/3/edit/
Exception Value: can't set attribute

Most helpful comment

Yes - page.url always gives the URL of the current page, so it isn't available as a field name.

All 3 comments

Yes - page.url always gives the URL of the current page, so it isn't available as a field name.

I just had this error. The error text is not very clear, but I'm glad I found this issue.

I agree that the error is not very clear.

Was this page helpful?
0 / 5 - 0 ratings