peewee get_or_create default use id field?
This ticket is lacking in a lot of detail...What exactly is it that you're asking? The `get_or_create`  method does not depend on an "id" field, but can work with any constraint. The method itself first attempts a "get" using the data provided. If this fails, then an attempt is made to create. If the create fails with an integrity error, then the `get` is retried. That's all there is to it.
 @coleifer please, explain why is it necessary to have an integrity check at get_or_create?
My use case: check an item by key. in case it doesn't exist - create new one. But know I need to provide all the fields, otherwise not null and other constains won't be met.
I would like to provide them only in case there is no matchin by id field.

Besides, current behavior with integrity check is not documented in API: http://docs.peewee-orm.com/en/latest/peewee/api.html. And I can't get how this integrity check is currently implemented. Please, at least provide some explanation of it at API.
(btw, nice ORM! I am loving its simplicity)
peewee get_or_create default use id field?

can peewee use custom diff  field ?   mysql table  not has `id` field 

```
In [163]: data
Out[163]:
{'brand': 'kkkk',
 'brand_img': 'b_img',
 'extra': '1sdf',
 'pid': 5,
 'pname': 'panme',
 'price': 11,
 'product_img': 'xiaorui.cc',
 'purl': 'url',
 'secound_id': 2,
 'third_id': 3,
 'top_id': 1}
Product.get_or_create(**data)
```

Error:

```
/Library/Python/2.7/site-packages/MySQLdb/connections.pyc in defaulterrorhandler(***failed resolving arguments***)
     34     del cursor
     35     del connection
---> 36     raise errorclass, errorvalue
     37
     38 re_numeric_part = re.compile(r"^(\d+)")

OperationalError: (1054, "Unknown column 't1.id' in 'field list'")

```
