Django Поля только для чтения, если есть какое-либо значение
Я написал этот код, чтобы сделать поле только для чтения, но я хочу сделать исключение, что если есть значение, то эта строка будет только для чтения, а если нет никакого значения, то она будет редактируемой,
admin.py
def get_readonly_fields(self, request, obj=None):
if obj:
return self.readonly_fields + ("name", "id")
return self.readonly_fields
Это пример того, как можно сделать два из трех полей readonly
в панели администратора
models.py
class Example_model(models.Model):
examlpe_field_1 = models.CharField(max_length=1000)
examlpe_field_2 = models.CharField(max_length=1000)
examlpe_field_3 = models.CharField(max_length=1000)
def __str__(self):
return self.pk
в admin.py
from django.contrib import admin
from . models import Example_model
class Example_admin(admin.ModelAdmin):
readonly_fields = ['examlpe_field_1', 'examlpe_field_2']
admin.site.register(Example_model, Example_admin)