简体   繁体   中英

Separate Datetime field to show Date and Time separate in HTML using Django

I am using Python 3.6 and Django as web framework I have to save datetime together in my database but show date and time separate field in HTML. Model Code:

class date_time(models.Model):
    date = models.DateField(default=timezone.now)
    time = models.TimeField(default=timezone.now)

Form Code:

class date_time_Form(forms.ModelForm):
    class Meta:
        model = date_time
        fields = ('date', 'time',)
        widgets = {
            'date': forms.TextInput(attrs={'class': 'form-control', 'type': 'date'}),
            'time': forms.TextInput(attrs={'class': 'form-control', 'type': 'time'}),
        }
        labels = {
            'date': 'Date',
            'time': 'Time',
        }

Currently, I am storing in a separate field but I want to save in one field date+time.

Update - I can use Datetime field but that will create only one element in HTML page. 当我使用日期时间字段时

But in HTML I want separate fields like below with only one datetime field in model期望输出

Is there any way to achieve this?

You can use SplitDateTimeField : https://docs.djangoproject.com/en/3.0/ref/forms/fields/#splitdatetimefield

class Myform(forms.Form):
    start_date = forms.SplitDateTimeField(initial=datetime.datetime.now)

SplitDateTime 字段示例

Altough, if you want a label for each one, you will need to modify your template, or use separate form attributes.

这正是DateTimeField的用途。

date_time = models.DateTimeField()

You can use models.DateTimeField to store dateTime in one field. DateTimeField

You can get the date and time from the HTML, then combine them into a DateTime object. See Pythonic way to add datetime.date and datetime.time objects for how.

If you want the reverse (taking a DateTime, and getting the date and time), you can see How do I convert datetime to date (in Python)? and Convert datetime to time in python

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM