有没有人知道如何摆脱Django urlfield中的'http://'前缀.
我的意思是当我们将一个字段定义为urlfield并尝试输入一个url时,如果没有提供架构,django将自动添加'http://'前缀.我不想要那个前缀.
我尝试在clean_field和clean方法下删除它.它不起作用.
我深入研究了源代码.我看到django在UrlField类的'to_python'方法中添加'http://'.
有没有办法覆盖它以摆脱'http://'?
我正在阅读Tango With Django教程,我在表格章节(http://www.tangowithdjango.com/book/chapters/forms.html)中遇到了一个我无法工作的功能.
不可否认,我正在使用Python 3.3和Django 1.6进行教程,但到目前为止,我已经能够完成教程了.
该clean函数forms.py应该清理URLField:
class PageForm(forms.ModelForm):
title = forms.CharField(max_length=128, help_text="input page title")
url = forms.URLField(max_length=200, help_text="input page URL")
views = forms.IntegerField(widget=forms.HiddenInput(), initial=0)
def clean(self, cleaned_data):
cleaned_data = super(PageForm, self).clean()
url = cleaned_data.get('url')
if url and not url.startswith('http://'):
url = 'http://' + url
cleaned_data['url'] = url
return cleaned_data
class Meta:
model = Page
fields = ('title', 'url', 'views')
Run Code Online (Sandbox Code Playgroud)
以下是add_page.html模板的摘录:
<form id="page_form" method="POST" action="/rango/category/{{category_name_url}}/add_page/">
{% csrf_token %}
{% for hidden in …Run Code Online (Sandbox Code Playgroud)