Django ModelForm验证模型中是否存在输入

时间:2017-01-18 19:43:26

标签: python django validation django-models django-forms

我的模型 Linea 只有一个名为 numero 的字段,它是一个字符集( numero 的值应该是数字)。我想做一个用户可以搜索 numero 值的表单。如果用户输入的数字存在于数据库中,则视图将重定向到显示有关 numero 的值的信息的模板,但如果用户搜索的值不在数据库中,则它将抛出一个错误。

我在Django中很新,而且我已经搜索过这样做但我无法实现它。

forms.py

from django import forms
from .models import Linea


class LineaForm(forms.ModelForm):


    class Meta:
        model = Linea
        fields = ('numero',)

models.py

from __future__ import unicode_literals
from django.db import models


class Linea(models.Model):
    numero = models.CharField(max_length=2)


    def __str__(self):
        return self.numero

views.py

from django.shortcuts import render, redirect, reverse
from .forms import LineaForm
from django.http import HttpResponseRedirect
import googlemaps
from datetime import datetime

def lineas(request, template="bustopaplineas.html"):
    if request.method == "POST":
        form = LineaForm(request.POST)
        if form.is_valid():
            numero = form.save(commit=False)
            linea_numero = str(numero)
            return redirect('lineas_detalles', linea_numero=linea_numero)
    else:
        form = LineaForm()
    return render(request, 'bustopapp/lineas.html', {'form': form})

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以检查 Linea 表格是否存在:

Linea.objects.get(numero=input)

如果不是,它会抛出异常