개발일지 <내일배움캠프> 20230417 TIL

임재훈·2023년 4월 17일
0

장고 팀 프로젝트 발표를했다
발표는 민영님이 해주셨는데 이창호 튜터님이 알려주신게 있는데

django 모델을 생성할때 id 값은 따로 생성하지 않아도 생성이 된다는것인데 ..
나는 여태까지

코드를 입class Posting(models.Model):
    username = models.ForeignKey(UserModel, on_delete=models.CASCADE, null=True, related_name='postings') 
    posting_id = models.IntegerField(primary_key=True)
  
    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        if not self.pk:
            # 새로운 게시물인 경우
            latest_post = Posting.objects.order_by('-posting_id').first()
            self.posting_id = latest_post.posting_id + 1 if latest_post else 1

        super().save(*args, **kwargs)력하세요

이렇게 posting_id 라는 id 값을 따로 생성해줬다 ,, 밑에 id 값을 저장할때마다 1씩 증가해서 저장되개 만들었는데 이것도 문제가 생길 수 있다는걸 알려주셨다
예를들어 3번 데이터가 삭제되었을때 다시 데이터를 생성해서 3번 데이터가 생성되면 원치 않는 결과를 보여줄 수 있다는 말에 수긍했다

pk 를 만들때는 특정 이유가 있지 않은 이상 장고에서 기본적으로 생성이 되는 id 값을 사용할 수 있게 만드는걸 추천해주셨다

여태까지 id 값을 따로 만들어줘서 수많은 오류들을 만났는데 그 이유를 이제야 알거같다

0개의 댓글