【发布时间】:2014-04-24 22:01:48
【问题描述】:
在我正在创建的signUp 表单中,我将date-of-birth field 预填充到“昨天”。
但是一年的scroll down menu 限制为9 年。我怎样才能增加出现的年数。它不能被限制。我附上了图片。你可以看到只有这九年中有一个option to choose。任何想法如何解决这个问题?
signups/forms.py:
from django import forms
from signups.models import SignUp
import datetime
from django.forms.extras.widgets import SelectDateWidget
def yesterday():
yesterday = (datetime.date.today() - datetime.timedelta(1))
return yesterday
class SignUpForm(forms.ModelForm):
date_of_birth = forms.DateField(widget=SelectDateWidget(), initial=yesterday)
class Meta:
model=SignUp
signups/models.py:
from django.db import models
from django.utils.encoding import smart_unicode
from blogapp.models import Post
class SignUp(models.Model):
#null in database
first_name=models.CharField(max_length=100,null=True,blank=True)
last_name=models.CharField(max_length=100,null=True,blank=True)
#default is null=false, blank=false, email is necessary
email=models.EmailField(unique=True)
#when created make timestamp but not when updated
timeStamp=models.DateTimeField(auto_now_add=True,auto_now=False)
updated=models.DateTimeField(auto_now_add=False,auto_now=True)
is_active=models.BooleanField()
date_of_birth=models.DateTimeField()
myPosts=models.ManyToManyField(Post)
def __unicode__(self):
return smart_unicode(self.email,encoding='utf-8',strings_only=False,errors='strict')
signup/views.py:
def signup_view(request):
form=SignUpForm(request.POST or None)
if form.is_valid():
save_it=form.save(commit=False)
save_it.save()
messages.success(request, "Thank you for signing up")
return HttpResponseRedirect("/accounts/register_success")
else:
args={}
args['form']=form
return render(request,"signup.html",args)
templates/signup.html:
{% extends "base.html" %}
{% block content %}
<h2>Join Now</h2>
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="register"/>
</form>
{% endblock %}
【问题讨论】:
-
不能有限制。它必须,该小部件在
html中呈现为options在select标记内。
标签: django django-models django-forms django-templates