Django SelectDateWidget 未正确呈现

Posted

技术标签:

【中文标题】Django SelectDateWidget 未正确呈现【英文标题】:Django SelectDateWidget not rendering correctly 【发布时间】:2019-07-15 03:04:51 【问题描述】:

我正在尝试在 Django 中呈现内置的 SelectDateWidget,但是在网页中它显示为

<django.forms.widgets.SelectDateWidget object at 0xb4f6bc6c> Submit

我是 Django 新手,我阅读了文档并在互联网上查找,但无法提出解决方案。

这是我的,

views.py

from django.shortcuts import render
from django.forms.widgets import SelectDateWidget

def yillik(request):
    form = SelectDateWidget()
    return render(request, 'izinyillik.html', 'form': form)

izinyillik.html

<form method="post">
     % csrf_token %
      form 
     <button type="submit">Submit</button>
</form>

【问题讨论】:

您的实际表格在哪里?您不能将小部件用作表单。 【参考方案1】:

您不能像这样单独使用小部件。小部件需要存在于字段中,而字段又需要存在于表单中。您需要同时声明它们:

class MyForm(forms.Form):
    my_field = forms.DateField(widget=SelectDateWidget)

【讨论】:

【参考方案2】:

问题是你正在渲染 widget 你应该使用表单

创建表单

forms.py

from django import forms
class MyForm(forms.Form):
    date= forms.DateField(widget=forms.extras.widgets.SelectDateWidget)

views.py 中:

from django.shortcuts import render
from forms import MyForm
def yillik(request):
    form = MyForm()
    return render(request, 'izinyillik.html', 'form': form)

【讨论】:

以上是关于Django SelectDateWidget 未正确呈现的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中获取 SelectDateWidget 以显示不同的“年份”选项

如何使用清晰的表单在一行上显示 Django SelectDateWidget

DJANGO - 如果未找到数据,如何显示“未找到您的搜索”

Django 查询失败,_id 未使用、未创建或未引用

如何解决“未捕获的类型错误:无法读取未定义的属性'参数'”reactjs + django

未捕获的 ReferenceError:django 未定义