Postgres serial column but not primary key
Adding a custom field is extremely easy: http://docs.peewee-orm.com/en/latest/peewee/models.html#creating-a-custom-field

I think that's probably what you'll want to do, add a `SerialField`.
 Thanks, that's very helpful (although a trivial, common built-in type like `serial` should have already a `SerialField` in pg ootb IMO)!
 Glad to have been helpful!

`PrimaryKeyField` maps to the Postgres `serial` type, but it appears that there are indeed extra semantics forcing it to be a primary key (after all, one would guess that would be the case, given the name _PrimaryKey_Field).

Since I already have another field that is a primary key (but is not a serial, yeah, I know...), I tried overriding these extra semantics using `primary_key=False` (after all, to me fields seem like they should just be mappings to DB types with minimal semantics, but maybe that goes against the whole philosophy of an ORM). However, despite my best intentions, this didn't work:

```
chuck@excelsior ~/matchmaking_webrtc $ ./run.sh 
Traceback (most recent call last):
  File "main.py", line 122, in <module>
    class User(BaseModel):
  File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 4454, in __new__
    raise ValueError('primary key is overdetermined.')
ValueError: primary key is overdetermined.
```

How can I specify a field should be a `serial` without it being a primary key (I already have another primary key field)? Maybe we need to add a `SerialField` or the ability to set `primary_key` to `False` to override the extra implicit behavior of a `PrimaryKeyField` since it IS possible to do so in Postgres?