Python源码示例:rest.HyperlinkedIdentityField()

示例1
def get_related_object_url(self, obj, field):
        try:
            obj = getattr(obj, field)
            if callable(obj):
              obj = obj()
            default_view_name = '%(model_name)s-detail'

            format_kwargs = {
                'app_label': obj._meta.app_label,
                'model_name': obj._meta.object_name.lower()
            }
            view_name = default_view_name % format_kwargs

            s = serializers.HyperlinkedIdentityField(source=obj, view_name=view_name)
            s.initialize(self, None)
            return s.field_to_native(obj, None)
        except Exception as e:
            print('WARN', e)
            return None 
示例2
def to_representation(self, value):
        # HyperlinkedIdentityField demands a request when creating
        # urls, but one is not always available. Instead of erroring
        # out hard, fake it.
        if "request" not in self.context:
            self.context["request"] = None
        return super().to_representation(value) 
示例3
def get_resources(self, obj):
        child = serializers.HyperlinkedIdentityField(
            view_name=self.resources_view_name
        )
        field = serializers.ListField(child=child)
        field.parent = self
        return field.to_representation(obj.resources.all()) 
示例4
def _get_related_fields(self, fields, id_field):
        return [k for (k, v) in fields
                if k != id_field
                and (isinstance(v, HyperlinkedRelatedField)
                or isinstance(v, HyperlinkedIdentityField)   
                or isinstance(v, ItemLinkField)
                or (isinstance(v, ManyRelatedField)
                    and isinstance(v.child_relation, HyperlinkedRelatedField)))] 
示例5
def __init__(self, kind=None, **kwargs):
        self.view_name = "archives-distillation"
        self.distillation = kind
        serializers.HyperlinkedIdentityField.__init__(
            self, view_name=self.view_name, **kwargs)