DRF - Поле кода автогенерации не отображается в админке
Я хочу сделать поле автогенерации в моей модели. Я создал его, когда я передаю запрос в post man, он будет автоматически создавать следующий код. Но я хочу показать поле автогенерации кода, когда пользователь добавляет данные в таблицу.
models.py
class GeneralDocumentType(models.Model):
code = models.CharField(max_length=10, null=False, unique=True)
name = models.CharField(max_length=100, null=False, unique=True)
description = models.TextField(blank=True, null=True)
def __str__(self):
return self.name
В сериализаторе я написал код для автогенерации только в поле кода(DOC001,DOC002,...) serializers.py
def get_code(model, prefix):
content = model.objects.all().last()
last = None
code_prefix = prefix
if content:
a_string = content.code
split_strings = []
n = len(prefix)
for index in range(0, len(a_string), n):
split_strings.append(a_string[index: index + n])
last = int(split_strings[1])
if last is not None:
suggested = last + 1
else:
suggested = 1
return "{}{:03d}".format(code_prefix, suggested)
class GeneralDocumentTypeSerializer(serializers.ModelSerializer):
class Meta:
model = GeneralDocumentType
fields = ["id", "code", "name", "description"]
read_only_fields = ['code']
def create(self, validated_data):
validated_data["code"] = get_code(GeneralDocumentType, "DOC")
return GeneralDocumentType.objects.create(**validated_data)
что я сделал не так, Как я могу показать, что поле кода должно быть (DOC003) увеличено, когда пользователь добавляет данные. Как я могу этого добиться???