#python #django #django-rest-framework
#python #django #django-rest-framework
Вопрос:
Существует Django REST framework. Мне нужно выгрузить полный путь к странице в тег. Например, есть страница:
https://domain-name.com/category/article
В serializers.py:
class someClass(serializers.ModelSerializer):
url = serializers.URLField(source='get_absolute_url', read_only=True)
class Meta:
model = onlyURL
fields = ['url']
Это работает некорректно, поскольку я не получаю полный URL, только часть:
<url>**/category/article**</url>
Как получить полный URL с протоколом, доменом и путем?
Ответ №1:
Вы можете использовать serializers.SerializerMethodField()
для этого. Например:
class SomeClass(serializers.ModelSerializer):
url = serializers.SerializerMethodField()
class Meta:
model = OnlyURL # using CamelCase for declaring Model Class
fields = ['url']
def get_url(obj):
request = self.context.get('request')
abs_url = obj.get_absolute_url()
return request.build_absolute_uri(abs_url)
Также не забудьте передать request
в качестве дополнительного аргумента или использовать общие представления / наборы представлений для этой реализации.
Комментарии:
1. Привет! Да, это именно то, что мне нужно. Спасибо!