Django 1.8和Django Crispy Forms:有一种简单易用的方法来实现日期选择器吗?

Str*_*ire 11 django datetime date datepicker django-crispy-forms

那里有很多日期/日期时间选择器实现.是否有任何与Django和Crispy Forms集成的特别好,它们是如何使用的?

我希望尽量减少开发工作,最大限度地提高简单性,并利用Django本地化.

日期字段的Django/Crispy标准输出:

<input class="dateinput form-control" id="id_birth_date" name="birth_date" type="text" value="21/07/2015">
Run Code Online (Sandbox Code Playgroud)

在模型中:

birth_date = models.DateField(verbose_name='D.O.B', auto_now_add=False, auto_now=False)
Run Code Online (Sandbox Code Playgroud)

谢谢!

编辑:

档案型号:

from django.db import models

class Profile(models.Model):
    birth_date = models.DateField(verbose_name='D.O.B', auto_now_add=False, auto_now=False)
Run Code Online (Sandbox Code Playgroud)

个人资料表格:

from django import forms
from profiles.models import Profile


class ProfileForm(forms.ModelForm):
    class Meta:
        model = Profile
        birth_date = forms.DateField(
            widget=forms.TextInput(
                attrs={'type': 'date'}
            )
        )
Run Code Online (Sandbox Code Playgroud)

档案查看:

from django.shortcuts import get_object_or_404
from django.contrib.auth import get_user_model
from profiles.models import Profile
from profiles.forms import ProfileForm

User = get_user_model()

def edit(request):
    profile = get_object_or_404(Profile, user=request.user)
    form = ProfileForm(request.POST or None, request.FILES or None, instance=profile)
    if request.method == 'POST' and form.is_valid():
        form.save()
    context = {
        'form': form,
        'page_title': 'Edit Profile',
    }
    return render(request, 'profiles/edit.html', context)
Run Code Online (Sandbox Code Playgroud)

档案编辑模板:

<form enctype="multipart/form-data" method="POST" action=".">
    {% csrf_token %}
    {{ form }}
    <input class='btn btn-primary' type="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

Aus*_*tin 15

不是一个脆弱形式的答案,但只要输入具有属性type,新的浏览器将为您输入日期选择器date.这属于最小开发努力的范畴.

date_field = forms.DateField(
    widget=forms.TextInput(     
        attrs={'type': 'date'} 
    )
)                                           
Run Code Online (Sandbox Code Playgroud)

  • 我无法让它发挥作用.我从模板中删除了| crispy.还有什么需要这个吗?我在问题中添加了更多细节 (2认同)