There's a detailed description here.
pip install django-fixed-timezone-field
Basic example:
from django import forms
from django.db import models
from fixed_timezone_field import FixedTimezoneDateTimeField
import pytz
class Event(models.Model):
	starts_at = models.DateTimeField()
class EventForm(forms.ModelForm):
	starts_at = FixedTimezoneDateTimeField()
	class Meta:
		model = Event
		fields = ['starts_at']
	def __init__(self, *args, **kwargs):
		super().__init__(*args, **kwargs)
		self.fields['starts_at'].timezone = pytz.UTC # or whatever timezone you wantIf the model also contains the timezone, and the same form is used to submit both the timezone and the time, you need to use some other tricks.
from django import forms
from django.db import models
from fixed_timezone_field import FixedTimezoneDateTimeField
from timezone_field import TimeZoneField
import pytz
class Event(models.Model):
	starts_at = models.DateTimeField()
	timezone = TimeZoneField()
class EventForm(forms.ModelForm):
	starts_at = FixedTimezoneDateTimeField()
	class Meta:
		model = Event
		fields = ['starts_at']
	def __init__(self, *args, **kwargs):
		super().__init__(*args, **kwargs)
		self.fields['starts_at'].timezone = self.instance.timezone
	def clean(self, *args, **kwargs):
		cleaned_data = super().clean(*args, **kwargs)
		timezone = cleaned_data['timezone']
		cleaned_data['starts_at'] = tz.localize(cleaned_data['starts_at'].replace(tzinfo=None))
		self.instance.starts_at = cleaned_data['starts_at']
		return cleaned_data