Skip to content

Commit

Permalink
Fix modelform get object
Browse files Browse the repository at this point in the history
  • Loading branch information
UmSenhorQualquer committed Feb 19, 2019
1 parent e038340 commit 56f1b98
Showing 1 changed file with 6 additions and 12 deletions.
18 changes: 6 additions & 12 deletions pyforms_web/widgets/django/modelform.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,10 @@ def model_object(self):
request = PyFormsMiddleware.get_request()
queryset = self.model.get_queryset(request, queryset)

return queryset.get(pk=self.object_pk)
try:
return queryset.get(pk=self.object_pk)
except self.model.ObjectDoesNotExist:
return None

#################################################################################
#### FUNCTIONS ##################################################################
Expand Down Expand Up @@ -712,7 +715,7 @@ def update_object_fields(self, obj):

elif obj.pk and isinstance(field, models.ManyToManyField):
pyforms_field.error = False
getattr(obj, field.name).set(value)
getattr(obj, field.name).set([] if value is None else value)

# all other fields except the ManyToManyField
elif not isinstance(field, models.ManyToManyField):
Expand Down Expand Up @@ -740,17 +743,8 @@ def save_related_fields(self, obj):
values = getattr(self, field.name).value
field_instance = getattr(obj, field.name)

field_instance.set(values)
"""values = [] if values is None else values
objs = field.related_model.objects.filter(pk__in=values)
values_2_remove = field_instance.all().exclude(pk__in=[o.pk for o in objs])
for o in values_2_remove: field_instance.remove(o)
field_instance.set([] if values is None else values)

values_2_add = objs.exclude(pk__in=[o.pk for o in field_instance.all()])
for o in values_2_add: field_instance.add(o)
"""
return obj


Expand Down

0 comments on commit 56f1b98

Please sign in to comment.