即使页面是使用https加载的,托管api的服务器仍返回http作为绝对URL,这与django
rest框架有关吗?因为似乎没有任何明显的方法可以解决此问题。
与Meta类相关的url字段是相关的
class NewsSerializer(serializers.HyperlinkedModelSerializer):
user = UserSerializer(read_only=True)
source = serializers.CharField(source='get_source_url', read_only=True)
comments_count = serializers.IntegerField(read_only=True)
date_added = serializers.CharField(source='humanize_date_added',
read_only=True)
is_owner = serializers.SerializerMethodField()
user_voted = serializers.SerializerMethodField()
favorited = serializers.SerializerMethodField()
image = serializers.SerializerMethodField()
def create(self, validated_data):
user = self.context['request'].user
story = News(user=user, **validated_data)
story.save()
return story
def get_is_owner(self, obj):
user = self.context['request'].user
if user.is_active and user == obj.user:
return True
return False
def get_user_voted(self, obj):
user = self.context['request'].user
if user.is_active:
return obj.user_voted(user)
return None
def get_favorited(self, obj):
user = self.context['request'].user
if user.is_active:
return obj.is_favorite(user)
class Meta:
model = News
fields = ('id', 'link', 'title', 'text', 'source', 'user',
'date_added', 'image', 'comments_count', 'url',
'upvotes', 'downvotes', 'user_voted', 'type',
'is_owner', 'favorited')
read_only_fields = ('date_added')
我不确定是否与nginx有关,但我在配置中有这个
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
您需要确保nginx转发客户端的请求方案,因为它将向Django发出常规的http请求。您需要在虚拟主机定义中添加以下行:
proxy_set_header X-Forwarded-Proto $scheme;
问题内容: 我无法将图像保存在此ImageField中。 发送回数据时: 模型 serializers.py view.py url.py 卷曲 问题答案: 您似乎在和处理程序中缺少序列化程序构造函数的参数。
在我的ModelViewSet中,我试图排除我的租户字段,以防止用户看到租户id(来自django-simic-Multitenant)。但是,我不能开发通用的ModelSerializer,因为我总是需要在ModelSerializer类中定义模型Meta。我的源代码,工作(非通用)如下。我想实现以下任一选项: > 序列化器的工作原理是拾取实际的类模型,而不需要在序列化器的元类中指定模型 在默认
我的用户模型中有几个字段是choice字段,并且正在尝试找出如何将其最好地实现到Django Rest框架中。 下面是一些简化的代码来显示我正在做什么。 基本上,我要做的是让get/post/put方法使用choice字段的display值,而不是代码,类似于下面的JSON。 我该怎么做呢?上面的代码不起作用。之前,我有这样的东西用于GET,但用于post/put会给我带来错误。我正在寻找如何这样
我将Django REST框架工具包与Django1.11一起使用,并尝试根据URL过滤结果。以下是我的设置: models.py: 我希望通过我的包模型的name字段来过滤结果,而不是使用以下内容: 我怎么才能做到这一点呢?
我知道有关于Django Rest框架的答案,但我找不到解决问题的方法。 我有一个应用程序,它具有身份验证和一些功能。我向它添加了一个新的应用程序,它使用Django Rest框架。我只想在此应用程序中使用库。我还想提出POST请求,我总是收到以下回复: 我有以下代码: 我希望在不影响当前应用程序的情况下添加API。因此,我的问题是,我如何才能禁用此应用程序的CSRF?
问题内容: 我有看起来像这样的模型: 我设法通过序列化器获得了所有类别的平面json表示形式: 现在,我要做的是让子类别列表具有子类别的内联json表示形式而不是其ID。django-rest-framework我该怎么做?我试图在文档中找到它,但它似乎不完整。 问题答案: 而不是使用ManyRelatedField,请使用嵌套的序列化程序作为字段: 如果要处理任意嵌套的字段,则应查看自定义文档的
我是django的初学者,在官网做了基础教程。 我想学习django rest框架,看到这里也有很棒的教程-http://www.django-rest-framework.org/#requirements. 有一件事我想不通——我如何安装框架和其他必要的东西?我正在脱机工作,所以我需要手动下载所有库/包,然后安装它们。(无法使用pip安装和github克隆) 关于我需要下载什么以及如何安装它才