我有一个模型 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})
提前致谢。
您可以检查Linea表是否存在:
Linea.objects.get(numero=input)
如果没有,则会抛出异常