Python 自定义表单中的模型字段
Django版本是3.1,Python版本是3.7 我有一个关于在表单中显示模型字段选项以供用户使用时自定义模型字段选项的问题 我有一个模型,它有很多字段,需要指定一个级别。级别需要以1到3之间的数字存储在数据库中,以便更容易筛选(当有人想要筛选级别不完全为2的对象,但假设级别为2或更高的对象时),因此它不能是字符串值。 因为有很多级别字段,所以我决定使用选项Python 自定义表单中的模型字段,python,django,Python,Django,Django版本是3.1,Python版本是3.7 我有一个关于在表单中显示模型字段选项以供用户使用时自定义模型字段选项的问题 我有一个模型,它有很多字段,需要指定一个级别。级别需要以1到3之间的数字存储在数据库中,以便更容易筛选(当有人想要筛选级别不完全为2的对象,但假设级别为2或更高的对象时),因此它不能是字符串值。 因为有很多级别字段,所以我决定使用选项 models.py class Cat(models.Model): LOW = 0 NORMAL = 1 HIGH = 2 VER
models.py
class Cat(models.Model):
LOW = 0
NORMAL = 1
HIGH = 2
VERY_HIGH = 3
LEVEL_CHOICES = (
(LOW, 'Low'),
(MEDIUM, 'Medium'),
(HIGH, 'High'),
(VERY_HIGH, 'Very high'),
)
first_attribute_level = models.IntegerField(choices=LEVEL_CHOICES, default=LOW)
second_attribute_level = models.IntegerField(choices=LEVEL_CHOICES, default=LOW)
third_attribute_level = models.IntegerField(choices=LEVEL_CHOICES, default=LOW)
fourth_attribute_level = models.IntegerField(choices=LEVEL_CHOICES, default=LOW)
现在,当我在视图中将此模型显示为一个表单时,用户可以添加一个Cat实例(而不是在管理中),明显的和预期的行为是一个选择列表,其中包含低、中、高、非常高选项。
我想做的是,为每个属性定制文本以显示其他内容。
例如,对于第一个属性级别,我希望用户从选项中进行选择:
- “不,一点也不”(如果选择此选项,将以低值写入数据库,即0)
- “是的,有一点”(如果选择,这将作为介质写入数据库,即1)
- “是的,偶尔一次”(如果选择此选项,将写入高达2的数据库)
- “是的,每天”(如果选择,这将写入数据库,作为非常高的值,即3)
- “从不”(如果选择此选项,将以低值写入数据库,即0)
- “有时”(如果选择,这将作为介质写入数据库,即1)
- “一周一次”(如果选择此选项,将写入高达2的数据库)
- “每月”(如果选择,这将写入数据库,因为它非常高,即3)
cat_form.html
{% extends "base.html" %}
{% block content %}
<form action="" method="post">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit" />
</form>
{% endblock %}
{%extends“base.html”%}
{%block content%}
{%csrf_令牌%}
{{form.as_table}}
{%endblock%}