stephenmcd / mezzanine

CMS framework for Django
http://mezzanine.jupo.org
BSD 2-Clause "Simplified" License
4.76k stars 1.65k forks source link

dumpdata not working on latest commit (Django 2.2.1) #1977

Closed dbeltra closed 3 years ago

dbeltra commented 3 years ago

When trying to dump the database with python manage.py dumpdata I get the following result:

CommandError: Unable to serialize database: 'MenusField' object has no attribute '_get_val_from_obj'

It looks like _get_val_from_obj has been deprecated since django 2.0, so it breaks on the latest mezzanine commit

jerivas commented 3 years ago

Hello, Can you share the complete traceback please? Thanks

dbeltra commented 3 years ago

Hello, Can you share the complete traceback please? Thanks

Sure, here it is :)

(venv) david at macbookpro in ~/Projects/my_website $ python manage.py dumpdata --traceback > data.json
Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/david/Projects/my_website/venv/lib/python3.7/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/Users/david/Projects/my_website/venv/lib/python3.7/site-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/david/Projects/my_website/venv/lib/python3.7/site-packages/django/core/management/base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Users/david/Projects/my_website/venv/lib/python3.7/site-packages/django/core/management/base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "/Users/david/Projects/my_website/venv/lib/python3.7/site-packages/django/core/management/commands/dumpdata.py", line 186, in handle
    object_count=object_count,
  File "/Users/david/Projects/my_website/venv/lib/python3.7/site-packages/django/core/serializers/__init__.py", line 128, in serialize
    s.serialize(queryset, **options)
  File "/Users/david/Projects/my_website/venv/lib/python3.7/site-packages/django/core/serializers/base.py", line 107, in serialize
    self.handle_field(obj, field)
  File "/Users/david/Projects/my_website/venv/lib/python3.7/site-packages/django/core/serializers/python.py", line 50, in handle_field
    self._current[field.name] = self._value_from_field(obj, field)
  File "/Users/david/Projects/my_website/venv/lib/python3.7/site-packages/django/core/serializers/python.py", line 47, in _value_from_field
    return value if is_protected_type(value) else field.value_to_string(obj)
  File "/Users/david/Projects/my_website/venv/lib/python3.7/site-packages/mezzanine/core/fields.py", line 96, in value_to_string
    value = self._get_val_from_obj(obj)
AttributeError: 'MenusField' object has no attribute '_get_val_from_obj'
jerivas commented 3 years ago

Fixed in #1980