2010-11-21 5 views
1

을 저장할 때 나는 저자를 설정해야합니다이 내 모델입니다 모델의 예를

class News(models.Model): 
    title = models.CharField(max_length=250) 
    text = models.TextField() 
    pub_date = models.DateTimeField(default=datetime.datetime.now) 
    author = models.ForeignKey(User) 

    def __unicode__(self): 
    return self.title 

그리고 간단한 그것을 위해 양식을 가지고 : 그것은 기본적으로 설정이기 때문에이 PUB_DATE 제외하고있어

class NewsForm(ModelForm): 
    class Meta: 
      model = News 
      exclude = ('pub_date','author',) 

을 , 그리고 저자이기 때문에 저자. 그러나 작성자를 현재 로그인 한 사용자로 설정하는 방법은 무엇입니까?

답변

2

나는 save() 방법을 덮어하고 이런 식으로 사용자에게 전달하는 것이 좋습니다 :

class NewsForm(ModelForm): 

    def save(self, author, commit=True): 
     # Don't commit the results yet 
     news = ModelForm.save(self, commit=False) 
     news.author = author 
     if commit: 
      news.save() 
     return news 

    class Meta: 
      model = News 
      exclude = ('pub_date','author',) 
관련 문제