小编msl*_*sln的帖子

django- nginx:[emerg] open()"/ etc/nginx/proxy_params"在/ etc/nginx/sites-enabled/myproject中失败(2:没有这样的文件或目录):11

我尝试使用本教程与Nginx和Gunicorn一起部署django项目.我做了所有的待办事项但是,当我/etc/nginx/sites-available/myproject使用以下代码创建文件时:

server {
listen 80;
server_name server_domain_or_IP;

location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
    root /home/sammy/myproject;
}

location / {
    include proxy_params;
    proxy_pass http://unix:/home/sammy/myproject/myproject.sock;
 }
}
Run Code Online (Sandbox Code Playgroud)

然后运行sudo nginx -t查找错误,我收到此错误:

nginx: [emerg] open() "/etc/nginx/proxy_params" failed (2: No such file or directory) in /etc/nginx/sites-enabled/myproject:11
nginx: configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud)

有什么问题??以及如何解决?坦

django django-deployment

12
推荐指数
1
解决办法
8875
查看次数

FastAPI - 无法在生产中渲染 Swagger

这是我的 FastAPImain.py文件。

from fastapi import FastAPI
from project.config.settings import base as settings

app = FastAPI(docs_url=f"{settings.URL_ROOT}/{settings.DOCS_URL}", redoc_url=None)
app.openapi_version = "3.0.0"

# some functions here
Run Code Online (Sandbox Code Playgroud)

我将这个项目部署到服务器上。但是当我转到服务器中的文档地址时,1.2.3.4/url_root/docs_url它向我显示以下消息:

Unable to render this definition
The provided definition does not specify a valid version field.

Please indicate a valid Swagger or OpenAPI version field.
Supported version fields are swagger: "2.0" and those that match openapi: 3.0.n (for example, openapi: 3.0.0).
Run Code Online (Sandbox Code Playgroud)

有什么问题以及如何解决?

更新:
FastAPI 落后于 Nginx。我的所有端点都工作正常,但我看不到文档。

swagger openapi fastapi

11
推荐指数
1
解决办法
7672
查看次数

Django-复数形式的无效标记:EXPRESSION

我在 django 网站中添加了“库尔德”语言。django 不支持这种语言,所以我添加了以下语言:\nin settings.py

\n\n
gettext = lambda s: s\nNEW_LANG_INFO = {\n    \'ku\': {\n       \'bidi\': True,\n       \'code\': \'ku\',\n       \'name\': \'Kurdish\',\n       \'name_local\': u\'\xda\xa9\xd9\x88\xd8\xb1\xd8\xaf\xdb\x8c\',\n    },\n}\n\nimport django.conf.locale\nLANG_INFO = dict(**django.conf.locale.LANG_INFO, **NEW_LANG_INFO)\ndjango.conf.locale.LANG_INFO = LANG_INFO\n\nLANGUAGES = (\n    (\'en\', \'English\'),\n    (\'ku\', gettext(\'Kurdish\')),\n    (\'ar\', \'Arabic\')\n)\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在当我去的时候mysite.com/en/admin/它工作正常。当我去时mysite.com/ar/admin/它工作正常。\n但是当我去时mysite.com/ku/admin/它会引发错误并显示以下消息:\nValueError at /ku/admin/\n invalid token in plural form: EXPRESSION\n

\n\n

Django 版本是1.11.6.

\n\n

有什么问题以及如何解决它?

\n\n

更新\n我发现在 django.po 中locale/ku/LC_MESSAGES,最后一行注释是"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\\n"

\n

python django django-i18n

7
推荐指数
2
解决办法
3683
查看次数

'collections.OrderedDict' 对象没有属性 'pk' - django rest 框架

我有一个模型,我想update()为它编写一个方法以进行更新。下面的代码片段是我的模型:

class Klass(models.Model):
    title = models.CharField(max_length=50)
    description = models.CharField(max_length=500)
    university = models.CharField(max_length=50,blank=True, null=True)
    teacher = models.ForeignKey(Profile, related_name='teacher', on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)

和下面的片段是对应的Serializer

class KlassSerializer(ModelSerializer):
        teacher = ProfileSerializer()
        url = HyperlinkedIdentityField(view_name='mainp-api:detail', lookup_field='pk')
        klass_settings = KlassSettingsSerializer()

    class Meta:
        model = Klass
        fields = ('url', 'id', 'title', 'description', 'university','teacher')

    
    def update(self, instance, validated_data):
        instance.title = validated_data.get('title', instance.title)
        instance.description = validated_data.get('description', instance.description)
        instance.university = validated_data.get('university', instance.university)
        instance.save()

        return instance
Run Code Online (Sandbox Code Playgroud)

对于更新,我使用以下代码段:

class KlassAPIView(APIView):    
    def put(self, request, pk=None):
        if pk == None:
            return Response({'message': 'You …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-rest-framework django-rest-viewsets

4
推荐指数
1
解决办法
8821
查看次数

Django - 如何为 DRF ImageField 编写测试

我有以下序列化器:

from rest_framework.serializers import Serializer, ImageField

class MySerializer(Serializer):
    avatar = ImageField()
Run Code Online (Sandbox Code Playgroud)

我怎样才能为它编写单元测试?我使用了 Django TestCase,但它引发了一个错误。

from django.test import TestCase

class MySerializerTest(TestCase):

    def setUp(self):
        self.data = {}
        ...

    def test_image(self):
        import tempfile
        self.data['avatar'] = tempfile.NamedTemporaryFile(suffix=".jpg").file
        r_data = json.dumps(self.data)
        j_data = json.loads(r_data)
        serializer = MySerializer(data=j_data)
        if not serializer.is_valid():
            import pprint
            pprint.pprint(serializer.errors)
        self.assertEqual(serializer.is_valid(), True)
Run Code Online (Sandbox Code Playgroud)

但它会引发以下错误:

TypeError:“BufferedRandom”类型的对象不可 JSON 序列化

我有什么错?如何为图像字段编写测试?

django django-unittest django-rest-framework django-tests

1
推荐指数
1
解决办法
1632
查看次数