
Hi David,
It sounds like introducing that kind of field() function would require users to write instead: class Question(Model): question_text = field(CharField(max_length=200))
I was envisioning this instead: ```python class Question(Model): question_text = char_field(max_length=200) ```
For my own reference, I expect a field() method would be implemented as something like: ... def field(field: Field[T]) -> T: return typing.cast(T, field)
`dataclasses.field()` looks like this: ```python def field(*, default=MISSING, default_factory=MISSING, init=True, repr=True, hash=None, compare=True, metadata=None, kw_only=MISSING): return Field(default, default_factory, init, repr, hash, compare, metadata, kw_only) ``` It's just a wrapper for constructing a `Field` object, but it returns `Any` instead of `Field`, and has overloads to return a more specific type when `default` or `default_factory` are provided. See the stubs at https://github.com/python/typeshed/blob/master/stdlib/dataclasses.pyi#L148. -Erik