我想检查数据库中是否存在添加的用户输入。如果它确实将用户重定向到现有对象绝对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