Ich übe django Class-Based-View mit einer grundlegenden Blog-Anwendung. Aus irgendeinem Grund speichert das CreateView für mein Post-Modell den Post jedoch nicht in der Datenbank.Django CreateView speichert kein Objekt
models.py
class Post(models.Model):
user = models.ForeignKey(User)
post_title = models.CharField(max_length=200)
post_content = models.CharField(max_length=500)
post_date = models.DateTimeField('date posted')
forms.py
class PostForm(forms.ModelForm):
class Meta:
model = Post
exclude = ('user', 'post_date')
views.py
class PostCreate(CreateView):
template_name = 'app_blog/post_save_form.html'
model = Post
form_class = PostForm
def form_valid(self, form):
form.instance.user = self.request.user
form.instance.post_date = datetime.now()
return super(PostCreate, self).form_valid(form)
Es zeigt Inhalt wi Wenn ich die Admin-Seite überprüfe, wird der von CreateView erstellte Beitrag nicht in der Datenbank gespeichert. Irgendeine Idee .. ??
Dank
versuchen zu tun 'form.save()' zuerst die dann rufen super !!! Wenn das hilft –
Ich habe versucht, Ihren Code und es funktioniert für mich. Da ist noch etwas. Nach dem Speichern leitet es Sie zur Posts List oder Post Formular weiter? – sneawo
'form.save()' sollte sowieso von 'super' aufgerufen werden, da er ein ModelForm verwendet –