29👍
✅
You can override the admin’s get_readonly_fields
method:
class MyAdmin(admin.ModelAdmin):
def get_readonly_fields(self, request, obj=None):
if obj and obj.another_field == 'cant_change_amount':
return self.readonly_fields + ('amount',)
return self.readonly_fields
1👍
For filling out one field from another, you need to add a prepopulated_fields
attribute to the relevant ModelAdmin
class. For example:
class PostAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": ("title",)}
The relevant documentation can be found here.
However, in the version of django I’m using at the moment (1.3), this seems to create an error when readonly_fields
is also used.
0👍
Declare any permanently readonly_fields in the body of the class, as the readonly_fields class attribute will be accessed from validation
- Django session key changing upon authentication
- Django rest framework where to write complex logic in serializer.py or views.py?
- Django: Paginator + raw SQL query
Source:stackexchange.com