数据库中没有在模板中使用的字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中没有在模板中使用的字段相关的知识,希望对你有一定的参考价值。

参考技术A 数据库中找不到相应的字段 有的字段是以符号、数字的形式存在,所以直接找不到。
1.首先找到映射表,在隐射表中包含我们想要的字段。
2.去相应的表中查找映射表中的字段。
注意1
我们想要的字段可能在映射表中有两个或更多的字段组合而成,所以去需要的表中分别找到这些不同的字段组合。
注意2
两个或更多的字段可能分别在不同的表中,此时需要联表。

Django - 在模板中呈现日期字段

我正在处理一个用于存储学生数据的表单。当我尝试渲染表单时,它会生成文本输入而不是数据。

如何使用django渲染日期输入

forms.朋友

class StudentRegister(forms.Form):

firstname = forms.CharField(max_length= 50)
lastname = forms.CharField(max_length = 50, required=False)
mail = forms.EmailField(required=False)
dob = forms.DateField()

HTML

{{form.dob}}
{{form.dob.error}}
答案

默认情况下,Django将显示TextInput字段,您可以覆盖您的表单以显示DateField ..

class DateInput(forms.DateInput):
    input_type = 'date'

class StudentRegisterForm(ModelForm):
    class Meta:
        model = StudentRegister
        fields = '__all__'
        widgets = {
            'dob': DateInput()
        }
另一答案

使用SelectDateWidget

from django.forms import SelectDateWidget
# from django.forms.extras.widgets Django < 1.9
from django.utils import timezone

def past_years(ago):
    this_year = timezone.now().year
    return list(range(this_year, this_year - ago - 1))

class StudentRegisterForm(forms.Form):
    ...
    dob = DateField(widget=SelectDateWidget(years=past_years(100))
另一答案

弗拉基米尔·达尼洛夫先前的回复只是一个小小的修正

from django.forms import SelectDateWidget
# from django.forms.extras.widgets Django < 1.9
from django.utils import timezone

def past_years(ago):
    this_year = timezone.now().year
    return list(range(this_year-ago-1, this_year)) #<------- Parameters should be inverted here

class StudentRegisterForm(forms.Form):
    dob = DateField(widget=SelectDateWidget(years=past_years(100))

以上是关于数据库中没有在模板中使用的字段的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Vapor 4 在 Leaf 模板中格式化日期字段

django DetailView 没有从 ManyToMany 字段中捕获数据

gridview编辑模板中没有itemtemplate

如何在警报列表面板的警报过滤器字段中使用模板变量

laravel 5.3 - 在刀片模板中显示来自 mysql 文本字段的 json 数据

Django从父对象访问模板中的子数据