I have an APP to rate supervisors to personnel in Django.
I have model in models.py in my app Django :
class SuperviserModel(models.Model):
name = models.TextField(db_collation='C')
family = models.TextField(db_collation='C')
score = models.FloatField(db_column='score ', blank=True, null=True) #
def __str__(self)-> str:
return f' - {self.family} - {self.name}'
class Meta:
managed = False
db_table = 'personnel'
And in admin.py:
@admin.register(SuperviserModel)
class MySuperviserModelAdmin(admin.ModelAdmin):
list_display = ['name','family','score']
sortable_by = ['name','family']
search_fields=['name', 'family']
I want when superviser user edit personnel just update score field, And cant update name and family field.
How can I do?
>Solution :
Specify score as only .fields [Django-doc]:
@admin.register(SuperviserModel)
class MySuperviserModelAdmin(admin.ModelAdmin):
list_display = ['name', 'family', 'score']
sortable_by = ['name', 'family']
search_fields = ['name', 'family']
fields = ['score']