작성
·
168
0
아래와 같은 클래스가 있습니다.
class Foo(models.Model):
name = models.CharField(max_length=20)
value = models.PositiveIntegerField(default=1, auto_increment=True)
class Meta:
constraints = [
models.UniqueConstraints(fields=["name", "value"], name="unique name value")
]
위에서 value의 auto increment가 name 속성과 연관돼서 동작하도록 구성하고 싶습니다.
예를 들어 Foo(name="김길동")을 생성하면 name="김길동", value=1 레코드가 생성되고, 다시 Foo(name="김길동")를 생성하면 auto_increment로 name="김길동", value=2 레코드가 생성됩니다.
여기서 추가적으로 Foo(name="박길동")을 생성하면 value가 3이 아니라 다시 박길동에 대해서 처음부터 auto_increment가 동작되어 name="박길동", value=1로 생성되도록 하고 싶습니다.
이를 위해서 models.Model의 save 메서드를 오버라이딩하거나 validation을 사용하지않고 구현하는 방법이 있을까요?