我是Django的新手并希望做一些简单的事情。
我有一个日期数据库字段,我正在尝试让Django将其显示为' date' HTML表单中的小部件。
以下是我的代码:
models.py
from django.db import models
class DateF(models.Model):
edate = models.DateField()
forms.py
from django.forms import ModelForm
from django import forms
from .models import DateF
class DateForm(forms.ModelForm):
class Meta:
model = DateF
fields = ['edate']
views.py
from django.shortcuts import render
from .forms import DateForm
def index(request):
if request.method == 'POST':
pass
else:
form = DateForm()
return render(request, 'datef/index.html',{'form':form})
模板文件
<!DOCTYPE html>
<html>
<head>
<title>Date field test</title>
</head>
<body>
<div style="width: 600px;margin: auto;">
<h2>Date field</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
</form>
</div>
</body>
</html>
上面显示了一个文本输入字段。
我在基于以下内容的forms.py中尝试了以下操作,但仍无法使其正常工作。
from django.forms import ModelForm
from django import forms
from .models import DateF
from django.forms import fields as formfields
from django.contrib.admin import widgets
class DateForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(DateForm, self).__init__(*args, **kwargs)
self.fields['edate'].widget = widgets.AdminDateWidget()
class Meta:
model = DateF
fields = ['edate']
我错过了什么?我需要提供任何JavaScript吗?