小编Raf*_*oly的帖子

如何验证 django Rest 框架的唯一约束?

如何使用不在请求负载上的密钥验证唯一约束?

我需要验证的密钥是user_idsku但请求不包含user_id密钥。

有效负载示例:

{'sku': '123', data: []}
Run Code Online (Sandbox Code Playgroud)

序列化器:

class ProductConfiguration(serializers.Serializer):

    min_quantity = serializers.IntegerField(required=True)
    price = serializers.DecimalField(
        required=True,
        decimal_places=2,
        max_digits=10,
        coerce_to_string=False
    )


class ProductSerializer(serializers.ModelSerializer):

    sku = serializers.CharField(required=True)
    data = ProductConfiguration(many=True, required=True)

    class Meta:
        model = WholeSale

        # the "id" and "user_id" columns should not be included on the response
        exclude = ['id', 'user']
Run Code Online (Sandbox Code Playgroud)

我需要验证usersku密钥已经存在。

默认情况下,如果两个密钥user_idsku位于有效负载上drf可以处理Unique错误,如果其中一个密钥不在有效负载上,我如何验证这两个密钥?

python django django-rest-framework

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

如何在 django-yasg 上添加前缀“token”?

我已经安装django-rest-frameworkdjango-yasg生成了 swagger 文档,当我尝试使用身份验证中的 ui 时,django-yasg不使用标头上Token的前缀Authentication,例如:

需要标头django-rest-framework

“身份验证:令牌XXX”

标头由以下内容生成django-yasg

“身份验证:XXX”

我也发现了这个问题;https://github.com/axnsan12/drf-yasg/issues/367 说我需要通过 swagger-ui 添加前缀token,但我该怎么做?

这是我的swagger settings

SWAGGER_SETTINGS = {
    'SECURITY_DEFINITIONS': {
        'Token': {
            'type': 'apiKey',
            'name': 'Authorization',
            'in': 'header'
        },
    },
    'USE_SESSION_AUTH': False
}
Run Code Online (Sandbox Code Playgroud)

我如何在 swagger-ui 上设置前缀,以便用户必须编写它?

django django-rest-framework

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

具有不同工作日的两个时间戳之间的区别?

我有以下日期:

Tue 19:00-20:00
Wed 04:25-15:14
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到之间的区别Tue 20:00Wed 04:25

我试图在datetime对象中转换它,但由于我没有月份或年份的日期,两个对象将获得相同的日期:

d1 = datetime.strptime("Tue 20:00", "%a %H:%M")
d2 = datetime.strptime("Wed 04:25", "%a %H:%M")
Run Code Online (Sandbox Code Playgroud)
  • d1 是: datetime.datetime(1900, 1, 1, 20, 0)
  • d2 是: datetime.datetime(1900, 1, 1, 4, 25)

分钟的差异应该是505但在这种情况下是-935.0因为它们具有相同的日期,因此它们相差近 16 小时而不是大约 8 个半小时:

diff = (d2 - d1).total_seconds() / 60  # -935.0
Run Code Online (Sandbox Code Playgroud)

python datetime weekday python-3.x python-datetime

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