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

问题描述 投票:0回答:1

我有一个模型 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',)

模型.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})

提前致谢。

python django validation django-models django-forms
1个回答
0
投票

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

Linea.objects.get(numero=input)

如果没有,则会抛出异常

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.