python - Django 表单 - 具有数字范围的 ChoiceField
问题描述
class House(models.Model):
floors = IntegerField() # 10 floors for example
class Flat(models.Model):
floor = IntegerField(null=True, validators=[MinValueValidator(1)]) # then here should be from 1 to 10 or None
house = ForeignKey(House)
class FlatForm(models.ModelForm):
class Meta:
model = Flat
fields = ['floor']
widgets = {'floor': .....} # I don't know what to do here. Select widget?
你好。有什么技巧可以实现我可以在房子的楼层数内为公寓选择楼层的表格吗?
我通过 Select2 和 API 进行了动态选择上传。
解决方案
根据Django docs,应该做以下事情:
class House(models.Model):
Floor = models.IntegerChoices('Floor', range(1,11))
floors = IntegerField(choices=Floor.choices)
(我现在无法测试 - 也许你需要list(range(1,11))
。)
我认为您不需要更改表单中的小部件的任何内容,除非您对默认小部件不满意。
推荐阅读
- javascript - 在 Next.js 中设计持久布局
- ios - NSBluetoothAlwaysUsageDescription 键缺失(虽然存在)
- node.js - 使用 nodejs 和 express 将变量存储在网络服务器中
- python - 如何在 Visual Studio Code 中的 Jupyter Notebook 中显示所有输出?
- mongodb - MongooseModule:无法连接到数据库。在带有 Mongo 的 dockerized Nestjs 应用程序上
- react-native - 有什么方法可以阻止 React Native webview 上的某个 http 响应标头?
- javascript - 调用函数后如何删除传单Javascript上的标记
- flutter - Flutter 名称 FutureOr 不是类型,因此不能在 as 表达式中使用
- javascript - 从 url 路径更改 HTML ID?
- pine-script - 无法将可变参数传递给安全功能