2010-11-21 5 views
1

Das ist mein Modell ist:Ich brauche Autor zu setzen, wenn Modells Instanz Speichern

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 

Und ich habe ein einfaches Formular für sie:

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

ich ohne pub_date bin, weil es Einstellungen standardmäßig ist und Autor, weil es der aktuelle Benutzer sein wird. Aber wie Autor auf den aktuell angemeldeten Benutzer gesetzt?

Antwort

2

Ich würde empfehlen, die save() Methode und das Bestehen der Benutzer es wie folgt überschreiben:

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',) 
Verwandte Themen