Django: как правильно отобразить SplitDateTimeWidget для DateTimeRangeField - PullRequest
0 голосов
/ 26 марта 2020

Онлайн-материал (документы, код) для django (postgres -specifi c) полей диапазона отсутствует. Я попытался переопределить виджет для DateTimeRangeField , но не смог заставить его отображать 2 симпатичных ввода времени и даты, используя SplitDateTimeWidget (дата начала, время окончания даты) для моего поля. Я согласился переопределить атрибут type и получить следующий вывод okayi sh, без этого просто type="text".

Текущее поведение:

Current okayish behaviour

Ожидаемое поведение: Подписан, но 2 из них.

enter image description here

Мои models.py

from django.db import models
from django.contrib.postgres.fields import DateTimeRangeField

class MyModel(models.Model):
    ...
    datetimerange = DateTimeRangeField()
    ...

Мой admin.py

from django import forms
from django.contrib import admin
from django.contrib.postgres.forms.ranges import RangeWidget, DateTimeRangeField


class MyModelAdminForm(forms.ModelForm):
    class Meta:
        model = models.MyModel
        fields = "__all__"
        widgets = {
            "datetimerange": RangeWidget(
                forms.SplitDateTimeWidget(
                    date_attrs={"type": "date"}, time_attrs={"type": "time"},
                ),
            )
        }


@admin.register(models.MyModel)
class MyModelAdmin(admin.ModelAdmin):
    form = MyModelAdminForm

Я пытался поиграть с (наследование от) поле по умолчанию DateTimeRangeField но там тоже не повезло.

...