composite field에 대해서 auto increment 적용하기
290
8 asked
아래와 같은 클래스가 있습니다.
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을 사용하지않고 구현하는 방법이 있을까요?
Answer 2
0
constraints만으로 구현하는 것이 비효율적이거나 어렵다면 save를 오버라이딩하는 방식으로도 괜찮습니다.
하지만 save()를 오버라이딩 한다면 save()의 name 입력값에 대해서 value 최대값을 찾고 +1하는 방식으로 구현해야될 것 같은데 오버헤드가 발생하지는 않을까요?
안녕하세요.
0
48
1
[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?
0
272
1
useEffect 훅에서 else 유무에 따른 결과
0
211
1
useAxios 훅의 dependency array 설정
0
245
1
useEffect에서 변수 업데이트 관련 질문
0
381
1
rest_framework.generics.CreateAPIView의 model 속성 유무
0
266
1
bootstrap4
0
470
4
리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요
1
362
1
admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법
0
572
3
useState는 필수일까요?
0
261
1
python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.
0
596
4
Django allauth를 사용한 소셜 로그인 시 에러
0
654
1
프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러
0
552
2
useLocalStorage() 함수 사용여부
0
228
1
django에 LOGIN_URL = '/accounts/login/'의 의미?
0
447
1
리듀서의 의미 재확인
0
430
1
simple-jwt Refresh Token 사용 노하우
0
897
2
docker compose 를 통한 배포 관련 오류 문의
0
670
1
파이썬 속도 장고 관련 궁금한게 있습니다.
0
364
1
is_like_user
0
233
1
related_name 오류
0
272
1
re_path 오류
0
258
1
re_path url
0
249
1
No post matches the given query
0
659
2

