html - 在Django中使用html输入类型month来显示年月的值
问题描述
我有一个输入类型月份,我要求用户输入工作的 start_month 和 start_year。但是,字段月份是可选的。像一个用户只能指定起始年份。在我的模型中,我将 start_month 存储为具有诸如“一月”、“二月”之类的值的 CharField。我将 start_year 存储为 IntegerField。我已经存储了值,我什至成功地检索了它们,如果我这样做,它们就会显示在模板中 {{ job.start_month }}
问题是如果用户只能有年和月或年,我如何通过输入类型月中的值属性显示它?
请帮助 :((( 注意:我对 Django 表单不满意:/
这是我的代码片段:
<div class="form-group col-md-6">
<label for="start">From:</label>
<input style="margin-left: 5px;" type="month" class="start_date" value="
{% if job.start_year and job.start_month %}{{ job.start_year }}-{{
job.start_month_as_number }}{% else %} {{ job.start_year }}-{% endif %}"
name="start">
</div>
解决方案
将此添加到您的模型中:
@property
def start_month_as_number(self):
if not self.start_month:
return ""
month_dict = {
"January":"01",
"February":"02",
"March":"03",
"April":"04",
"May":"05",
"June":"06",
"July":"07",
"August":"08",
"September":"09",
"October":"10",
"November":"11",
"December":"12",
}
return month_dict[self.start_month]
然后在您的模板中,您可以像这样打印它:{{job.start_month_as_number}}
为了安全起见,您还需要将选项参数添加到您的start_month
字段中。
month_choices = ["January","February","March","April","May","June","July","August",September"","October", "November", "December"]
class StudentWorkExperience(models.Model):
...
start_month = models.CharField(max_length=10, choices=month_choices, null=True, blank=True)
推荐阅读
- javascript - 来自 events.js 的“读取 ECONNRESET”错误
- javascript - 为 SublimeText3 中的 Handlebars (.hbs) 文件设置 HTML 语法默认值
- android - 如何从 recyclerView 中删除一项?
- angular - 未从 Firebase 数据库中检索数据
- ms-access - 微软访问计算
- c# - 使用 Set 时配置 Eager-Loaded 属性
() - android - Xamarin.Android - Google 登录崩溃
- microsoft-dynamics - 服务“Microsoft Dynamics NAV Server [DynamicsNAV110]”(MicrosoftDynamicsNavServer$DynamicsNAV110)无法启动
- python - 装饰后不再获取函数的返回值
- javascript - 输入内联编辑clickOutside