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 - 如果未找到数据,如何显示“未找到您的搜索”