小编sor*_*ike的帖子

django-rest-framework序列化器在多个视图中的不同字段

我是Django的新手,无法找到问题的解决方案.

问题是在使用不同视图的情况下强制特定的序列化器包括不同数量的字段.我想在第一个视图中使用'id'字段,在第二个视图中使用'id'和'name'字段.

这是我的model.py

class Processing(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField()
    description = models.CharField()
Run Code Online (Sandbox Code Playgroud)

这是我的serializer.py

class ProcessingSerializer(serializers.ModelSerializer):
    id = serializers.ModelField(model_field=Processing()._meta.get_field('id'))
    class Meta:
        model = Processing
        fields = ('id', 'name')
Run Code Online (Sandbox Code Playgroud)

欢迎任何帮助.

django django-serializer django-rest-framework

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

通过Django Rest发送文件

我需要从不同的对象存储桶下载图像对象,并通过Django Rest Framework将其发送给用户.

我有类似的东西:

if request.method == 'GET':

    # Get object using swiftclient
    conn = swiftclient.client.Connection(**credentials)
    container, file = 'container_name', 'object_name'
    _, data = conn.get_object(container, file)

    # Send object to the browser
    return Response(data, content_type="image/png")
Run Code Online (Sandbox Code Playgroud)

data 变量包含字节类型.

测试时我收到错误: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte

什么可以解决这个问题?

python django storage django-rest-framework

6
推荐指数
2
解决办法
644
查看次数

GitLab CI 凹凸 Python 包版本

我想知道是否可以在 gitlab ci runner 中更改存储在 gitlab 中的 Python 包版本。

我有示例包结构:

/package
  /src
    /__init__.py
     main.py
  setup.py
  Dockerfile
  .gitlab-ci.yml
Run Code Online (Sandbox Code Playgroud)

init.py包括:

  __version__ = '1.0.0'
Run Code Online (Sandbox Code Playgroud)

setup.py 包括:

  setup(
        name='foo',
        version=src.__version__,
        packages=find_packages(),
        install_required=[foo, bar]
  )
Run Code Online (Sandbox Code Playgroud)

碰撞和发布的简单工作流程如下所示:在 github 和 pypi 上发布新的 python 包版本的最佳工作流程和实践

但是我们可以自动在 __init_.py 中修改版本,同时直接在 gitlab-ci 中发布吗?

python python-3.x gitlab gitlab-ci

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

Flask Marshmallow 序列化具有额外字段的多对多关系

我在带有序列化模型对象的 Flask 应用程序中遇到一个问题,该对象与存储在关联表中的额外字段存在多对多关系。我想要一个像这样的序列化数据:

{
    "id": "123",
    "name": "name",
    "mobile": "phone number",
    "interest": [1, 2, 3]
    "_embedded": {
        "interest": [
            {
                "id": 1,
                "name": "ECONOMIC",
                "active": true,
            },
            {
                "id": 2,
                "name": "POETRY",
                "active": true,
            },
            {
                "id": 3,
                "name": "SPORT",
                "active": false,
            },
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我设法准备了一个必要的模型,如下所示:

class OwnerInterests(db.Model):
    owner_id = db.Column(db.Integer, db.ForeignKey('owners.id'), primary_key=True)
    interest_id = db.Column(db.Integer, db.ForeignKey('interests.id'), primary_key=True)
    active = db.Column(db.Boolean)
    interest = db.relationship('Interests', back_populates='owners')
    owner = db.relationship('Owners', back_populates='interests')


class Owners(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String)
    mobile …
Run Code Online (Sandbox Code Playgroud)

python serialization sqlalchemy flask marshmallow

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