六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 90|回复: 0

自定义save方法避免名字重复

[复制链接]

升级  1.33%

58

主题

58

主题

58

主题

举人

Rank: 3Rank: 3

积分
204
 楼主| 发表于 2013-2-7 15:20:09 | 显示全部楼层 |阅读模式
class CategoryNameRepeated(Exception):    passclass Category(models.Model):    name = models.CharField(max_length=128)    parent = models.ForeignKey('self', blank=True, null=True, related_name='child_set')        def save(self):        if not self.parent:            if Category.objects.get(name=self.name):                raise CategoryNameRepeated        super(Category, self).save()    def __unicode__(self):        return self.namedef add_category(request):    if request.method == "POST":        form = CategoryForm(data=request.POST)        if form.is_valid():            try:                obj = form.save()                          return HttpResponseRedirect(reverse('tribe.views.view_category', kwargs={'id':obj.id}))            except CategoryNameRepeated:                msg = _("category name repeated")                return render_to_response('tribe/category_edit.html', {'form': form,'msg':msg})            else:            return render_to_response('tribe/category_edit.html', {'form': form})    else:        form = CategoryForm()    return render_to_response('tribe/category_edit.html', {'form': form})
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表