Django-Taggit从模型字段中保存标签

时间:2017-05-31 16:58:19

标签: python django django-taggit

我正在为我的网站建立一个帖子编辑器。我可以编辑的其中一个字段是标签。但是,当我保存帖子时,所有内容都正确更新,并且不会抛出任何错误,但我对标签字段所做的任何更改都不会保存。

<Route path="/dashboard/about" component={About} />
<Route path="/dashboard/settings" component={Settings} />
<Route exact path="/dashboard" component={Home} />

1 个答案:

答案 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)