File tree 2 files changed +16
-2
lines changed
2 files changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -289,6 +289,7 @@ def dynamic_type():
289
289
290
290
@convert_django_field .register (models .OneToOneField )
291
291
@convert_django_field .register (models .ForeignKey )
292
+ @convert_django_field .register (models .OneToOneRel )
292
293
def convert_field_to_djangomodel (field , registry = None ):
293
294
model = field .related_model
294
295
@@ -297,9 +298,14 @@ def dynamic_type():
297
298
if not _type :
298
299
return
299
300
301
+ if isinstance (field , models .OneToOneRel ):
302
+ description = get_django_field_description (field .field )
303
+ else :
304
+ description = get_django_field_description (field )
305
+
300
306
return DjangoInstanceField (
301
307
_type ,
302
- description = get_django_field_description ( field ) ,
308
+ description = description ,
303
309
required = not field .null ,
304
310
is_foreign_key = True ,
305
311
)
Original file line number Diff line number Diff line change @@ -297,7 +297,15 @@ def instance_resolver(
297
297
queryset = None
298
298
unique_filter = {}
299
299
if is_foreign_key :
300
- pk = getattr (root , "{}_id" .format (info .field_name ))
300
+ pk_name = "{}_id" .format (info .field_name )
301
+ pk = None
302
+ if hasattr (root , pk_name ):
303
+ pk = getattr (root , pk_name )
304
+ else :
305
+ fk_obj = getattr (root , info .field_name )
306
+ if fk_obj :
307
+ pk = fk_obj .pk
308
+
301
309
if pk is not None :
302
310
unique_filter ["pk" ] = pk
303
311
unique_fields = ()
You can’t perform that action at this time.
0 commit comments