📜  URLField – Django 表单(1)

📅  最后修改于: 2023-12-03 15:05:46.449000             🧑  作者: Mango

URLField – Django 表单

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 文档中的 表单和模型表单章节