mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-07-20 17:49:32 +00:00
perf(application): 优化RemoteApp应用Chrome序列类的字符串主键关联字段
This commit is contained in:
parent
6df331cbed
commit
eabaae81ac
@ -21,17 +21,11 @@ logger = get_logger(__file__)
|
|||||||
class CharPrimaryKeyRelatedField(serializers.PrimaryKeyRelatedField):
|
class CharPrimaryKeyRelatedField(serializers.PrimaryKeyRelatedField):
|
||||||
|
|
||||||
def to_internal_value(self, data):
|
def to_internal_value(self, data):
|
||||||
if self.pk_field is not None:
|
instance = super().to_internal_value(data)
|
||||||
data = self.pk_field.to_internal_value(data)
|
return str(instance.id)
|
||||||
try:
|
|
||||||
instance = self.get_queryset().get(pk=data)
|
|
||||||
return str(instance.id)
|
|
||||||
except ObjectDoesNotExist:
|
|
||||||
self.fail('does_not_exist', pk_value=data)
|
|
||||||
except (TypeError, ValueError):
|
|
||||||
self.fail('incorrect_type', data_type=type(data).__name__)
|
|
||||||
|
|
||||||
def to_representation(self, value):
|
def to_representation(self, value):
|
||||||
|
# value is instance.id
|
||||||
if self.pk_field is not None:
|
if self.pk_field is not None:
|
||||||
return self.pk_field.to_representation(value)
|
return self.pk_field.to_representation(value)
|
||||||
return value
|
return value
|
||||||
|
Loading…
Reference in New Issue
Block a user