Skip to content
Snippets Groups Projects
Commit efbf4502 authored by Calum Mackervoy's avatar Calum Mackervoy Committed by Jean-Baptiste
Browse files

minor: upgrade to Django 2.2

parent fa861a74
No related branches found
No related tags found
1 merge request!161Performance
......@@ -3,12 +3,13 @@ from collections import OrderedDict, Mapping, Iterable
from typing import Any
from urllib import parse
from django.db import transaction
from django.conf import settings
from django.contrib.auth import get_user_model
from django.core.exceptions import ImproperlyConfigured
from django.core.exceptions import ValidationError as DjangoValidationError
from django.urls import resolve, Resolver404, get_script_prefix
from django.urls import get_resolver
from django.urls.resolvers import get_resolver
from django.db.models import QuerySet
from django.utils.datastructures import MultiValueDictKeyError
from django.utils.encoding import uri_to_iri
......@@ -629,7 +630,13 @@ class LDPSerializer(HyperlinkedModelSerializer):
nested_fk_fields_name = list(filter(lambda key: isinstance(validated_data[key], dict), validated_data))
for field_name in nested_fk_fields_name:
field_dict = validated_data[field_name]
field_model = model._meta.get_field(field_name).related_model
try:
field_model = model._meta.get_field(field_name).related_model
print('field_model is ' + str(field_model))
except:
# not fk
print('except! not FK!')
continue
slug_field = Model.slug_field(field_model)
sub_inst = None
......@@ -650,11 +657,12 @@ class LDPSerializer(HyperlinkedModelSerializer):
kwargs = {slug_field: field_dict[slug_field]}
sub_inst = field_model.objects.get(**kwargs)
if sub_inst is None:
if create:
sub_inst = self.internal_create(field_dict, field_model)
else:
continue
with transaction.atomic():
try:
sub_inst = self.internal_create(field_dict, field_model)
except:
print('whoops')
validated_data[field_name] = field_dict
validated_data[field_name] = sub_inst
return validated_data
......
import json
from django.apps import apps
from django.conf import settings
from django.conf.urls import re_path, include
from django.conf.urls import include, re_path
from django.contrib.auth import get_user_model
from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist
from django.urls import get_resolver
from django.urls.resolvers import get_resolver
from django.db import IntegrityError, transaction
from django.http import JsonResponse, Http404
from django.shortcuts import get_object_or_404
......@@ -333,18 +334,7 @@ class LDPViewSetGenerator(ModelViewSet):
# append nested fields to the urls list
for field in kwargs.get('nested_fields') or cls.nested_fields:
# the nested property may have a custom viewset defined
try:
nested_model = kwargs['model']._meta.get_field(field).related_model
except FieldDoesNotExist:
nested_model = getattr(kwargs['model'], field).field.model
if hasattr(nested_model, 'get_view_set'):
kwargs['view_set'] = nested_model.get_view_set()
urls_fct = kwargs['view_set'].nested_urls # our custom view_set may override nested_urls
else:
urls_fct = cls.nested_urls
urls.append(re_path('^' + detail_expr + field + '/', urls_fct(field, **kwargs)))
urls.append(re_path('^' + detail_expr + field + '/', cls.nested_urls(field, **kwargs)))
return include(urls)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment