gpt4 book ai didi

Django DateTimeField 输入表单

转载 作者:行者123 更新时间:2023-12-02 08:39:47 25 4
gpt4 key购买 nike

我的模型中有一个 DateTime 字段,我正在寻找一种简单的方法来使其在表单中看起来不错。类似于SelectDateWidget

我一直在研究很多类似的问题,并且让像 admin datepicker 或 jquery 这样的东西工作似乎真的很棘手。 (这是我第一次使用Django,之前从未使用过jquery)。

所以,我使用 ChoiceField 而不是 this例如,但我也无法让它工作。我收到错误名称​​'self'未定义。我可以不在这里使用 self 吗?或者有一些更好的简单方法来做到这一点?我不需要花哨的日期选择器,只需要能让用户轻松输入的东西。

class ProjectForm(ModelForm):
startdate = forms.DateField()
starthour = forms.ChoiceField(choices=((6,"6am"),(7,"7am"),(8,"8am"),(9,"9am"), ...))
startminute = forms.ChoiceField(choices=((0,":00"),(15,":15"),(30,":30"),(45,":45")))

class Meta:
model = Project

def clean(self):
starttime = time(int(self.cleaned_data.get('starthour')),
int(self.cleaned_data.get('startminute')))
return self.cleaned_data

try:
self.instance.start_time = datetime.datetime.combine(
self.cleaned_data.get("startdate"), starttime)
except TypeError:
raise forms.ValidationError("")

最佳答案

forms.py

from django import forms
from django.contrib.admin import widgets

class MyForm(forms.ModelForm):
class Meta:
model = MyModel

def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['mydate'].widget = widgets.AdminDateWidget()
self.fields['mytime'].widget = widgets.AdminTimeWidget()
self.fields['mydatetime'].widget = widgets.AdminSplitDateTime()

在模板中:

<script type="text/javascript" src="/my_admin/jsi18n/"></script>
<script type="text/javascript" src="/media/admin/js/core.js"></script>

...或者,对于 Django 1.4+:

{% load static %}

<link rel="stylesheet" type="text/css"
href="{% static 'admin/css/forms.css' %} "/>
<link rel="stylesheet" type="text/css"
href="{% static 'admin/css/base.css' %} "/>
<link rel="stylesheet" type="text/css"
href="{% static 'admin/css/global.css' %}"/>
<link rel="stylesheet" type="text/css"
href="{% static 'admin/css/widgets.css' %}"/>

<script type="text/javascript"
src="/admin/jsi18n/"></script>
<script type="text/javascript"
src="{% static 'admin/js/core.js' %}"></script>
<script type="text/javascript"
src="{% static 'admin/js/admin/RelatedObjectLookups.js' %}"></script>
<script type="text/javascript"
src="{% static 'admin/js/jquery.js' %}"></script>
<script type="text/javascript"
src="{% static 'admin/js/jquery.init.js' %}"></script>
<script type="text/javascript"
src="{% static 'admin/js/actions.js' %}"></script>
<script type="text/javascript"
src="{% static 'admin/js/calendar.js' %}"></script>
<script type="text/javascript"
src="{% static 'admin/js/admin/DateTimeShortcuts.js' %}"></script>

关于Django DateTimeField 输入表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15291887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com