2010-11-21 37 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 

而且我有这方面的简单形式:

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

我排除PUB_DATE因为它的默认设置和作者,因为它将成为当前用户。 但是如何将作者设置为当前登录的用户?

回答

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',) 
相关问题