我有一个枚举类:
class Group(enum.Enum):
user = 0
manager = 1
admin = 2
Run Code Online (Sandbox Code Playgroud)
我有一个 pydantic 模型:
class User(BaseModel):
id: int
username: str
group: Group
Run Code Online (Sandbox Code Playgroud)
它生成序列化为 json 的内容如下:
{
"id": 5,
"username": "admin",
"group": 2
}
Run Code Online (Sandbox Code Playgroud)
但是,我想获取枚举字段的名称而不是其值,所以它应该是:
{
"id": 5,
"username": "admin",
"group": "admin"
}
Run Code Online (Sandbox Code Playgroud)
这有可能吗?如果是这样,怎么办?
我有以下 Pydantic 模型类型方案规范:
class RequestPayloadPositionsParams(BaseModel):
"""
Request payload positions parameters
"""
account: str = Field(default="COMBINED ACCOUNT")
fields: List[str] = Field(default=["QUANTITY", "OPEN_PRICE", "OPEN_COST"])
class RequestPayloadPositions(BaseModel):
"""
Request payload positions service
"""
header: RequestPayloadHeader = Field(
default=RequestPayloadHeader(service="positions", id="positions", ver=0)
)
params: RequestPayloadPositionsParams = Field(
default=RequestPayloadPositionsParams()
)
class RequestPayloadOrdersParams(BaseModel):
"""
Request payload orders parameters
"""
account: str = Field(default="COMBINED ACCOUNT")
types: List[str] = Field(default=["WORKING", "FILLED", "CANCELED"])
class RequestPayloadOrders(BaseModel):
"""
Request payload orders service
"""
header: RequestPayloadHeader = Field(
default=RequestPayloadHeader(service="order_events", id="order_events", ver=0)
)
params: …Run Code Online (Sandbox Code Playgroud) 我有一个域 example.org。
我有 docker 在那里运行,Traefik 作为代理。现在我想设置Keycloak。我想访问 auth.example.org 上的 Keycloak。这是我的配置(docker-compose):
keycloak:
image: quay.io/keycloak/keycloak
restart: always
command: start
environment:
KC_PROXY_ADDRESS_FORWARDING: true
KC_HOSTNAME_STRICT: false
KC_HOSTNAME: auth.example.org
KC_HOSTNAME_PORT: 443
KC_HTTP_ENABLED: true
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://postgres:5432/keycloak?ssl=allow
KC_DB_USERNAME: root
KC_DB_PASSWORD: password
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: password
labels:
- "traefik.http.routers.cloud-network-keycloak.rule=Host(`auth.example.org`)"
- "traefik.http.routers.cloud-network-keycloak.entrypoints=websecure"
- "traefik.http.routers.cloud-network-keycloak.tls.certresolver=letsencryptresolver"
- "traefik.http.routers.cloud-network-keycloak.tls=true"
- "traefik.http.services.cloud-network-keycloak.loadbalancer.server.port=8080"
depends_on:
postgres:
condition: service_healthy
networks:
- internal
- traefik
Run Code Online (Sandbox Code Playgroud)
但是,加载 Keycloak 管理控制台会https://auth.example.org/admin/master/console/在浏览器中引发错误:
网址: https: //auth.example.org/realms/master/protocol/openid-connect/login-status-iframe.html/init?client_id=security-admin-console&origin=https%3A%2F%2Fauth.example。组织 状态:403
我不知道...如何解决这个问题?
我想过滤列中NoneMySQL 方言值或其中的数据。NULL
这可以通过以下方式轻松完成:
db.query(models.Data).filter(models.Data.multiplier == None).all()
好吧,但我正在构建一种高级过滤和排序功能。因此,我有一个包含要过滤的值的列表,例如:
[1,2,5]
为此过滤我的数据也很容易:
db.query(models.Data).filter(models.Data.multiplier.in_([1,2,5])).all()
但现在我还想None在我的列表中允许一个值:
[1,2,5,None]
过滤:
db.query(models.Data).filter(models.Data.multiplier.in_([1,2,5,None])).all()
但是,不会返回列NULL中具有该值的所有行。为什么不使用该函数的用法?怎么解决这个问题呢?multiplierNonein_