2009-07-21 6 views
5

평상시와 같이 마지막 삽입물 ID를 얻을 수 없으며 이유가 확실하지 않습니다. 내보기에서Django - 마지막 삽입물 ID

:

comment = Comments(...) 
comment.save() 
comment.id #returns None 

내 모델 :

class Comments(models.Model): 
    id = models.IntegerField(primary_key=True) 

누구 전에이 문제로 실행 했습니까? 보통 save() 메서드를 호출하면 comment.id를 통해 id에 액세스 할 수 있지만 이번에는 작동하지 않습니다.

+0

을 반환해야 당신이 이제까지 ID를 설정 함을 ? 자동 입력란을 사용하지 않습니다. – balpha

답변

7

줄에 id 필드의 값을 설정하고 있습니까? 그렇지 않다면 장고가 AutoField로 기본 키를 돌보는 대신에 필드를 정의하는 이유는 무엇입니까?

예에서 수행하는 것처럼 IntegerField에서 기본 키로 지정하면 장고는 자동으로 값을 할당하지 않습니다.

+0

아니요, 이드는 자동으로 증가한다고 정의하지 않습니다. 고마워. 고마워. – Joe

1

id라는 새 IntegerField를 기본 키로 지정 하시겠습니까? 장고는 이미 무료로 당신을 위해 ...

그 말은, 당신의 코멘트 모델에서 ID 필드를 제거하려고 했습니까?

2

자동 설정 기본 키를 사용 AutoField 정의하려면 :

class Comments(models.Model): 
    id = models.AutoField(primary_key=True) 
2

단순히

c = Comment.object.latest() 

을 당신에게 마지막으로 삽입 된 코멘트

c.pk 

12 #last comment saved. 
+0

그것은'object'가 아니라'objects'이어야합니다. – Seether

관련 문제