Some suggestions:
Chore'speriodfield should probably beperiod_daysto avoid the comment.- The comment on
updatemakes it look like it should be calledmark_completeor something, so that you can remove the comment. In any case I would expect the view rather than the model to do that update. - It is customary to use a
ModelViewSetto encapsulate the sort of functions you have in views.py. Chore.DoesNotExistshould result in a HTTP 404 response code, which is the default. No need for custom code. In general, letting DRF decide the response code is much easier.- The test classes have inconsistent naming.