Certain operations not respecting the db_value()
It seems to be working OK for me:

```python
from peewee import *

class ListField(Field):
    def db_value(self, value):
        return ','.join(value)
    def python_value(self, value):
        return value.split(',')

db = SqliteDatabase(':memory:')

class Register(Model):
    data = TextField()
    items = ListField()
    class Meta:
        database = db

db.create_tables([Register])

r = Register.create(data='foo,bar,baz', items=['foo', 'bar', 'baz'])
r.items  # ['foo', 'bar', 'baz']

r_db = Register.get()
r_db.items  # ['foo', 'bar', 'baz']
``` Ok, so I think I narrowed it down to the get_or_create method. 

r, c = Register.get_or_create(data='foo,bar,baz', items=['foo', 'bar', 'baz'])

Use that to recreate When doing a `SELECT`, peewee doesn't know if the list you are passing should be unpacked (as it would for an `IN` query, for example). To work around, when passing lists in this situation you should wrap it in Param:

```python
r = Register.select().where(Register.items == Param(['foo', 'bar', 'baz']))
``` In Peewee 3.0a, you can accomplish the same `AsIs`. Problem solved :) Thank you for the quick help!
I saw that this was an issue before, #150 

But I experience the same problem, so perhaps this fix has been undone in a later release:

I have made a ListField, which is pretty much the same as here:

```
class ListField(Field):    
 
   def db_value(self, list):
        return str(list)

    def python_value(self, list):
        return ast.literal_eval(list)
```

I get the same error: peewee.OperationalError: near ",": syntax error
db_value doesnt get a list, but gets called for each item in the list

Workaround:
Make a class that contains a list. Make a ClassField for this class, that uses the list to create the output.
Not an optimal solution, but works for now