django if object exists重定向到绝对url

时间:2015-04-07 18:30:30

标签: python django forms redirect exists

我想检查数据库中是否存在添加的用户输入。如果它确实将用户重定向到现有对象绝对URL,则传递并继续保存输入。到目前为止,我设法检查存在并获取对象,但返回HttpResponseRedirect(input_get.get_absolute_url())不重定向,尽管我可以在终端(/tags/215/baseball/)中正确打印URL。 相反,我得到:

  

“确保此值最多包含50个字符(它有65个字符)。”

有什么建议吗?感谢

forms.py

class TagsForm(forms.ModelForm):
    def clean_tag_word(self):
        tag_word = self.cleaned_data['tag_word']
        tag_filter = TagsNew.objects.filter(tag_word=tag_word)
        if tag_filter.exists():
            tag_get = TagsNew.objects.get(tag_word=tag_word)
            tag_redirect=tag_get.get_absolute_url()
            print (tag_redirect)
            return HttpResponseRedirect(tag_redirect)
        else:
            pass
        return tag_word

models.py(get_absolute_url):

def get_absolute_url(self):
        return reverse('tags:tagsnew_detail', kwargs={'pk':self.pk, 'slug':self.slug})

models.py:

class TagsNew(models.Model):
    id = models.AutoField (primary_key=True)
    tag_word = models.CharField(max_length=50, blank=True)
    slug = models.CharField(max_length=50, blank=True)
    timestamp=models.DateTimeField(auto_now_add=True, auto_now= False)
    updated=models.DateTimeField(auto_now_add=False, auto_now= True)

    class Meta:
        managed = True
        db_table = 'tags_new'

    def save(self, *args, **kwargs):
        self.slug = slugify(self.tag_word)
        super(TagsNew, self).save(*args, **kwargs)

    def get_absolute_url(self):
        return reverse('tags:tagsnew_detail', kwargs={'pk':self.pk, 'slug':self.slug})

    def __str__(self): 
        return self.tag_word

迹:

/tags/221/corrections/
<ul class="errorlist"><li>tag_word<ul class="errorlist"><li>Ensure this value has at most 50 characters (it has 65).</li></ul></li></ul>
[08/Apr/2015 04:47:52] "POST /tags/add/ HTTP/1.1" 200 16662
[08/Apr/2015 04:47:52] "GET /static/js/ajax.js HTTP/1.1" 404 1634
[08/Apr/2015 04:47:52] "GET /static/tags/css/style.css HTTP/1.1" 304 0

0 个答案:

没有答案
相关问题