mirror of
https://github.com/graphql-python/graphene-django.git
synced 2025-02-16 19:40:36 +03:00
Unifiy OneToOne Rel
This commit is contained in:
parent
fbdc10fb98
commit
d56eef7600
|
@ -289,6 +289,7 @@ def convert_field_to_list_or_connection(field, registry=None):
|
|||
|
||||
@convert_django_field.register(models.OneToOneField)
|
||||
@convert_django_field.register(models.ForeignKey)
|
||||
@convert_django_field.register(models.OneToOneRel)
|
||||
def convert_field_to_djangomodel(field, registry=None):
|
||||
model = field.related_model
|
||||
|
||||
|
@ -297,9 +298,14 @@ def convert_field_to_djangomodel(field, registry=None):
|
|||
if not _type:
|
||||
return
|
||||
|
||||
if isinstance(field, models.OneToOneRel):
|
||||
description = get_django_field_description(field.field)
|
||||
else:
|
||||
description = get_django_field_description(field)
|
||||
|
||||
return DjangoInstanceField(
|
||||
_type,
|
||||
description=get_django_field_description(field),
|
||||
description=description,
|
||||
required=not field.null,
|
||||
is_foreign_key=True,
|
||||
)
|
||||
|
|
|
@ -297,7 +297,15 @@ class DjangoInstanceField(Field):
|
|||
queryset = None
|
||||
unique_filter = {}
|
||||
if is_foreign_key:
|
||||
pk = getattr(root, "{}_id".format(info.field_name))
|
||||
pk_name = "{}_id".format(info.field_name)
|
||||
pk = None
|
||||
if hasattr(root, pk_name):
|
||||
pk = getattr(root, pk_name)
|
||||
else:
|
||||
fk_obj = getattr(root, info.field_name)
|
||||
if fk_obj:
|
||||
pk = fk_obj.pk
|
||||
|
||||
if pk is not None:
|
||||
unique_filter["pk"] = pk
|
||||
unique_fields = ()
|
||||
|
|
Loading…
Reference in New Issue
Block a user