我正在为我的网站建立一个帖子编辑器。我可以编辑的其中一个字段是标签。但是,当我保存帖子时,所有内容都正确更新,并且不会抛出任何错误,但我对标签字段所做的任何更改都不会保存。
<Route path="/dashboard/about" component={About} />
<Route path="/dashboard/settings" component={Settings} />
<Route exact path="/dashboard" component={Home} />
答案 0 :(得分:0)
你在这里做了很多不必要的工作。你没有利用UpdateView
的力量。这就是你应该需要的。它将为您form.save()
打电话
from django.http import HttpResponseForbidden
from django.shortcuts import get_object_or_404
from django.views.generic.edit import UpdateView
class EditPostView(UpdateView):
form_class = EditPostForm
model = Post
template_name = 'myapp/editpost.html'
def dispatch(self, *args, **kwargs):
if not self.request.user.is_superuser:
return HttpResponseForbidden()
return super(EditPostView, self).dispatch(*args, **kwargs)
def get_object(self, queryset=None):
return get_object_or_404(Post, id=self.kwargs['id'])
def get_success_url(self):
return '/posts/{0}'.format(self.object.id)
编辑:如果您摆脱get_success_url
并将get_absolute_url
方法添加到Post
模型,则可获得奖励积分。
class Post(models.Model):
...
def save(self, *args, **kwargs):
self.date_edited = datetime.now()
super(Post, self).save(*args, **kwargs)
def get_absolute_url(self):
return '/posts/{0}'.format(self.id)