Ful*_*ang 5 python django enums django-rest-framework
鉴于这个模型
from django.db import models
class Olympian(models.Model):
MedalType = models.TextChoices('MedalType', 'GOLD SILVER BRONZE')
medal = models.CharField(max_length=6, choices=MedalType.choices, default=MedalType.GOLD)
Run Code Online (Sandbox Code Playgroud)
这个函数接受作为CharField参数
fn_with_type_hint(olympian.medal)
Run Code Online (Sandbox Code Playgroud)
如何在不进行这样的硬编码的情况下更严格地输入提示参数?
def fn_with_type_hint(medal: Literal['Gold', 'Silver', 'Bronze']):
pass
Run Code Online (Sandbox Code Playgroud)
我尝试过Olympian.medal,但它只是一个字符串
medal: Olympian.medal
Run Code Online (Sandbox Code Playgroud)
我也尝试了这个的变体但无济于事
medal: Literal[*Olympian.MedalType.values]
Run Code Online (Sandbox Code Playgroud)
我也无法使用此解决方案,因为我不是从字符串列表开始
| 归档时间: |
|
| 查看次数: |
251 次 |
| 最近记录: |