📅  最后修改于: 2023-12-03 15:05:46.449000             🧑  作者: Mango
Django 的 URLField
是一种用于处理 URL 的表单字段。它可用于处理包含 URL 的字符串。
要使用 URLField
,您必须在您的 models.py
文件中导入它:
from django.db import models
from django.forms import URLField
class MyModel(models.Model):
url = URLField()
您可以指定一些参数来更改 URLField
的默认行为:
| 参数名 | 描述 |
| ------ | ---- |
| max_length
| 字段的最大长度,默认为 200
。 |
| verify_exists
| 如果为 True
,当通过表单提交 URL 时,URLField
将检查 URL 是否存在。 但是注意,该参数在 Django 1.5 中已弃用并将在 Django 1.10 中删除。 |
| validators
| 包含一系列要用于验证 URL 的函数的列表。默认包含 django.core.validators.URLValidator
。 |
使用 URLField
的最简单方法是创建一个表单类:
from django import forms
from django.forms import URLField
class MyForm(forms.Form):
url = URLField()
在你的模板中,你可以使用表单的 as_p()
或 as_table()
方法来渲染表单。这将渲染出整个表单,并将每个表单字段作为 <p>
或 <tr>
添加。
<form method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>
或是将 {{ form.url }}
直接渲染到你想放置它的地方。
<form method="post">{% csrf_token %}
{{ form.url }}
<input type="submit" value="Submit">
</form>
渲染表单时,如果任何验证错误发生,错误消息将被渲染为以下 CSS 类的列表之一:
errorlist
:表示 "这里有一个或多个错误" 的错误消息。errorlist-nonfield
:表示 "这个表单的错误" 的错误消息。error
:表示每个表单元素的错误消息。当表单被提交时,Django 将执行几个步骤以验证给定表单数据的有效性,并生成一个 cleaned_data
字典。
def my_view(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
# 处理表单数据
url = form.cleaned_data['url']
# ...
else:
form = MyForm()
return render(request, 'form_template.html', {'form': form})
cleaned_data
字典包含表单字段的片段,这些字段已经过过滤器和验证器的处理,并转换为适当的 Python 数据类型。
如果表单验证失败,则调用 form.errors
将返回与所有验证错误有关的所有信息。
这就是 Django 中 URLField
表单字段的简单介绍。如果您想深入学习 Django 的表单处理,请查阅 Django 文档中的 表单和模型表单章节。