从CharField获取字符串

时间:2015-11-20 21:42:16

标签: python django django-forms

我一直在网上看,但无济于事。我正试图从Django的CharField获取一个url字符串。

class EntryForm(forms.ModelForm):
    class Meta:
        model = Entry
        fields = ['url']

def get_url(self):
    temp = self.fields['url']
    string = temp.to_python(temp)
    return string

这将返回一个unicode对象,但它不能正常打印,如终端输出中所示:

url is: 
<django.forms.fields.CharField object at 0x10781b410>

模型在这里:

class Entry(models.Model):
    url = models.CharField(max_length=200)
    article_title = models.CharField(max_length=200, default="generic title")

    def __unicode__(self):
        val = str(self.url) + ", " + str(self.article_title)
        return val

使用Python 2.7。 有人能帮忙吗? 谢谢!

2 个答案:

答案 0 :(得分:2)

你应该在你的views.py:

form = EntryForm(request.POST, instance=instance)
if form.is_valid():
    url = form.cleaned_data['url']

答案 1 :(得分:0)

使用Form.clean()函数获取表单数据。

def get_url(self):
    cleaned_data = self.clean()
    return cleaned_data.get('url')

为什么不使用is_valid()

  

is_valid()会自动在表单上调用clean()。你用   您的观看次数为is_valid(),表单类型为clean()

此功能是Form功能,而不是View功能。