on_conflict update is not evaluating the WHERE clause correctly
The docs are very clear, you cannot use python "or", "and" or "not" to combine expressions.

Rewrite

```python
Person.fname != EXCLUDED.fname or Person.lname != EXCLUDED.lname
```

As

```python
(Person.fname != EXCLUDED.fname) | (Person.lname != EXCLUDED.lname)
``` Thank you! This worked for me. I am struggling to find the documentation on this. Could you point me to the link if you have it handy, please? https://docs.peewee-orm.com/en/latest/peewee/query_operators.html#
Thank you for creating Peewee and for being active on addressing issues and on answering questions. 

I encountered issues while upserting data using on_conflict() method. So i faked a scenario to identify the root cause and here is what i could find.

I created a Person model using Peewee inserted a record using the below dict:
personDict = {'id':'11011', 'fname':'Jane', 'lname':'Austin', 'age':28}
Then i tried updating the record using on_conflict() method. The below code should have updated the age of the above record to 30, since the id is the same and since the condition (fname != 'Jane' or lname != 'Austin') evaluates to true. But 'age' did not get updated. 

It seems like when we have a WHERE clause with an 'or' condition, if the first condition is evaluated to false, the remaining conditions in the where clause are not evaluated. In the below code, if i switch the order of the two conditions, to make it (Person.lname != EXCLUDED.lname or Person.lname != EXCLUDED.lname), then the update works. Is there a workaround to address this issue?

    personDict = {'id':'11011', 'fname':'Jane', 'lname':'Brown', 'age':30}
    upsert(personDict )

    def upsert(personDict ): 
        query = Person.insert(personDict)
        query.on_conflict(conflict_target=[Person.id], 
                                     update={Person.age: EXCLUDED.age},
                                     where=(Person.fname != EXCLUDED.fname or
                                                  Person.lname != EXCLUDED.lname)).execute()


If i run the below PostgreSQL statement, the 'age'does get updated to 30 as expected.

    INSERT INTO person (id, fname, lname, age)
    VALUES (11011, 'Jane', 'Brown', 30)
    ON CONFLICT (id) 
    DO UPDATE
    SET age = EXCLUDED.age
    WHERE (person.fname <> EXCLUDED.fname OR person.lname <> EXCLUDED.lname);