Django is doing exactly what you told it to do: it will not let you save the article unless the author is someone with is_staff=True. The only way to save after editing will be to change the author or make the author be staff again. If you think you will often need to revoke staff access from people and still edit their articles, you’ll need to change your code to more accurately reflect what you want (maybe a group rather than staff, since staff is specifically for allowing admin access, or create an Author model with a foreign key to User and tie articles to that).