django models 中choices
时间: 2024-04-17 22:24:43 浏览: 22
在 Django 的模型(models)中,`choices` 是一个常用的字段选项,用于限制字段的取值范围。它通常与 `CharField` 或 `IntegerField` 等字段一起使用。
`choices` 接受一个包含元组的列表,每个元组都包含两个值:一个用于存储的值和一个用于显示的值。例如:
```python
STATUS_CHOICES = [
('draft', '草稿'),
('published', '已发布'),
('archived', '已归档'),
]
class Article(models.Model):
title = models.CharField(max_length=100)
status = models.CharField(max_length=10, choices=STATUS_CHOICES)
```
在上面的例子中,`status` 字段只能从 `draft`、`published` 和 `archived` 中选择一个值,并且对应的显示值分别为 "草稿"、"已发布" 和 "已归档"。
这样定义字段选项后,Django 将会自动为该字段生成适当的表单控件,并在数据库中存储所选的值。
相关问题
django choices
在 Django 中,Choices 是一个用于定义模型字段的元组。它允许我们为一个字段定义一组可选值,这些可选值在模型实例中被存储为整数。例如,我们可以定义一个模型字段来表示性别,使用 Choices 可以这样定义:
```
class Gender(models.Model):
MALE = 1
FEMALE = 2
OTHER = 3
GENDER_CHOICES = (
(MALE, 'Male'),
(FEMALE, 'Female'),
(OTHER, 'Other')
)
gender = models.IntegerField(choices=GENDER_CHOICES)
```
在上面的例子中,我们定义了一个 Gender 模型,其中定义了三个常量:MALE、FEMALE 和 OTHER。我们还定义了一个 GENDER_CHOICES 元组,其中包含了这三个常量及其对应的字符串值。最后,我们将 gender 字段定义为一个 IntegerField,并指定可选值为 GENDER_CHOICES。
这样,我们就可以在创建 Gender 实例时,通过 gender 字段指定 MALE、FEMALE 或 OTHER 中的一个值。在数据库中,这些值会被存储为对应的整数值。例如,如果我们创建一个 Gender 实例,指定 gender 为 FEMALE,那么在数据库中,gender 字段的值将会是 2。
django的models里面,制作选择
在 Django 的 models 中,制作选择可以使用 choices 参数来定义一个选项列表。choices 参数接收一个由元组组成的可迭代对象,每个元组包含两个值:选项的值和选项的显示文本,如下所示:
```python
class MyModel(models.Model):
GENDER_CHOICES = (
('M', 'Male'),
('F', 'Female'),
('O', 'Other')
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
```
在上面的例子中,我们定义了一个包含三个选项的选择字段 gender。第一个元素是字段的实际值,第二个元素是字段在表单中的显示文本。当我们在表单中使用该字段时,会显示选择列表,其中包含三个选项:Male、Female 和 Other。当用户选择其中一个选项时,该字段的实际值将被保存到数据库中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)