如何使用不在请求负载上的密钥验证唯一约束?
我需要验证的密钥是user_id,sku但请求不包含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)
我需要验证user和sku密钥已经存在。
默认情况下,如果两个密钥user_id和sku位于有效负载上drf可以处理Unique错误,如果其中一个密钥不在有效负载上,我如何验证这两个密钥?
我已经安装django-rest-framework并django-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 上设置前缀,以便用户必须编写它?
我有以下日期:
Tue 19:00-20:00
Wed 04:25-15:14
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到之间的区别Tue 20:00和Wed 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)
datetime.datetime(1900, 1, 1, 20, 0)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)