Create aware datetime objects for TimestampField
You can't compare naive and tz-aware datetimes, so this is a non-starter unfortunately. The idea is that your naive datetime *is* already in UTC so the tzinfo is meaningless and provides flexibility -- that is *also* why `utc=False` by default. We can't be switching the return value between naive and tz-aware based on the value of the `utc` parameter.

My suggestion would be to subclass `TimestampField` and override the `python_value()` if you wish, e.g.

```python
class UTCTimestampField(TimestampField):
    def __init__(self, **kwargs):
        kwargs['utc'] = True
        super(UTCTimestampField, self).__init__(**kwargs)
    def python_value(self, value):
        value = super(UTCTimestampField, self).python_value(value)
        if value is not None:
            return value.replace(tzinfo=datetime.timezone.utc)
```
**Description**
With `TimestampField(utc=True)` it returns a naive datetime object. This is not recommended as they are treated by many datetime methods as local times.

**Expected behaviour**
Return an aware datetime object to avoid confusion, per the recommendation in [datetime docs](https://docs.python.org/3.11/library/datetime.html#datetime.datetime.utcfromtimestamp)

**Suggested change**
```python
    if self.utc:
-       value = datetime.datetime.utcfromtimestamp(value)
+       value = datetime.datetime.fromtimestamp(value, datetime.timezone.utc)
```