Я нашел свой ответ, надеюсь, что он поможет кому-то еще, это работа, но, возможно, это не лучший ответ.
Я использовал промежуточное поле, потому что я не мог изменить реальное поле так,Я создаю форму с DateTimeField:
from django import forms
from django.contrib.admin.widgets import AdminSplitDateTime
class MyModelAdminForm(forms.ModelForm):
start_date_time = forms.SplitDateTimeField(widget=AdminSplitDateTime())
class Meta:
model = MyModel
fields = '__all__'
, затем добавляю форму к своему администратору:
@admin.register(Product)
class MyModelAdmin(admin.ModelAdmin):
form = MyModelAdminForm
fields = ('start_date_time',)
для установки начального значения предыдущего сохраненного объекта в форме:
def get_form(self, request, obj=None, **kwargs):
form = super().get_form(request, obj, **kwargs)
if obj:
form.base_fields['start_date_time'].initial = datetime.datetime.fromtimestamp(obj.start_time)
return form
результат:
и последний шаг - сохранение DateTimeField в IntegerField в качестве времени эпохи:
def save_model(self, request, obj, form, change):
obj.start_time = round(form.cleaned_data['start_date_time'].timestamp())
obj.save()