agendas: don't fail on unexpected M2M in import (#48421)

This commit is contained in:
Lauréline Guérin 2020-11-17 14:43:29 +01:00
parent 09780824e5
commit b4b2801eba
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 7 additions and 1 deletions

View File

@ -102,6 +102,11 @@ def clean_import_data(cls, data):
except FieldDoesNotExist:
# remove unknown fields
cleaned_data.pop(param)
continue
if field.many_to_many:
# remove many to many fields, they have to be managed after update_or_create
cleaned_data.pop(param)
continue
if param == 'slug':
value = cleaned_data[param]
try:

View File

@ -402,7 +402,7 @@ def test_import_export_desk_missing_fields(app):
assert TimePeriodException.objects.exists() is False
def test_import_export_desk_unknown_fields(app):
def test_import_export_unknown_fields(app):
events_agenda = Agenda.objects.create(label='Events Agenda', kind='events')
Event.objects.create(agenda=events_agenda, start_datetime=now(), places=10)
meetings_agenda = Agenda.objects.create(label='Meetings Agenda', kind='meetings')
@ -431,6 +431,7 @@ def test_import_export_desk_unknown_fields(app):
# add unknown fields everywhere
payload['agendas'][0]['unknown_field'] = 'foobar'
payload['agendas'][0]['events'][0]['unknown_field'] = 'foobar'
payload['agendas'][0]['real_agendas'] = ['foobar'] # not available for a non virtual agenda
payload['agendas'][1]['unknown_field'] = 'foobar'
payload['agendas'][1]['meetingtypes'][0]['unknown_field'] = 'foobar'
payload['agendas'][1]['desks'][0]['unknown_field'] = 'foobar'