inflearn logo
강의

Course

Instructor

Complete Guide to Python/Django Web Service Development with React

composite field에 대해서 auto increment 적용하기

290

onetwocoding

8 asked

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을 사용하지않고 구현하는 방법이 있을까요?

 

django docker models react python

Answer 2

1

onetwocoding

save method를 오버라이딩하는 방식으로 구현했습니다.  

0

onetwocoding

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