2013-03-24 1 views
0

저는 온라인 포럼을 구현하여 Python과 Django를 배우려고합니다. 지금은 게시물 제목의 기본값을 "Re :"+ thread.title로 설정하려고 시도하고 있지만 그렇게 할 수는 없습니다.Django 모델에 계산 된 기본값을 추가하는 방법은?

나는 이것과 비슷한 것을 찾았지만 아무 것도 내 문제에 대답하는 것 같지 않습니다. 나는 누군가가 나를 도울 수 있기를 바랍니다

from django.db import models 

class Thread(models.Model): 
    title = models.CharField(max_length=50) 

    def __unicode__(self): 
     return u'[id=%s]%s' % (self.id, self.title) 

class Post(models.Model): 
    thread = models.ForeignKey(Thread) 
    title = models.CharField(max_length=50) 
    post_date = models.DateTimeField(auto_now_add=True) 
    content = models.TextField() 

    def __init__(self): 
     super(Post, self).__init__() 
     if not self.title: 
      self.title = "Re: %s" % self.thread.title 

    def __unicode__(self): 
     return u'%s::[id=%s]%s' % (self.thread, self.id, self.title) 

:

여기 내 코드 (models.py)입니다.

감사합니다, 차드

답변

1

당신은 아마 무시 save 방법의 기본 값을 설정합니다. self.thread이 아직 설정되지 않았기 때문에 __init__ 코드가 작동하지 않습니다.

+0

감사합니다. wRAR. 관리자 페이지를 통해 물건을 추가 할 때 이것이 분명 할까 궁금합니다. – Chad

+0

@Chad no. admin에 객체를 만들 때'self.thread'는 처음에는 비어 있으므로 다른 옵션은 많지 않습니다. – wRAR

+0

도움을 많이 주셔서 감사합니다. – Chad

관련 문제