【问题标题】:Django ModelForm validate if input exists in modelDjango ModelForm 验证模型中是否存在输入
【发布时间】:2017-01-18 19:43:25
【问题描述】:

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

提前致谢。

【问题讨论】:

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


    【解决方案1】:

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

    Linea.objects.get(numero=input)
    

    如果没有,它会抛出异常

    【讨论】:

      猜你喜欢
      • 2012-11-03
      • 2015-11-17
      • 2012-09-30
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 2013-11-26
      • 2013-08-22
      相关资源
      最近更新 更多