I have a Django Model which I wish to be only readonly. No adds and edits allowed.
I have marked all fields readonly and overridden has_add_permission in ModelAdmin
You could try this package Django Admin View Permission. This package adds a view permission for the specified models and handles the other stuff automatically.
view permission