Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
djangoldp
Manage
Activity
Members
Labels
Plan
Issues
99
Issue boards
Milestones
Wiki
Code
Merge requests
5
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
djangoldp-packages
djangoldp
Commits
efbf4502
Commit
efbf4502
authored
4 years ago
by
Calum Mackervoy
Committed by
Jean-Baptiste
4 years ago
Browse files
Options
Downloads
Patches
Plain Diff
minor: upgrade to Django 2.2
parent
fa861a74
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!161
Performance
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
djangoldp/serializers.py
+15
-7
15 additions, 7 deletions
djangoldp/serializers.py
djangoldp/views.py
+4
-14
4 additions, 14 deletions
djangoldp/views.py
with
19 additions
and
21 deletions
djangoldp/serializers.py
+
15
−
7
View file @
efbf4502
...
...
@@ -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
...
...
This diff is collapsed.
Click to expand it.
djangoldp/views.py
+
4
−
14
View file @
efbf4502
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
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment