所以,我想創建一個超級基本窗體與一個單一的輸入字段,將用於查詢我的數據庫。Django窗體查詢數據庫(模型)
我的模型(models.py
)如下:
from django.db import models
class Book(models.Model):
uid = models.IntegerField(primary_key=True)
title = models.CharField(max_length=30)
class Meta:
db_table = u'books'
forms.py
:
from django import forms
from myapp.models import Book
class EnterIDForm(forms.form):
book_id = forms.CharField()
# add a custom clean function to validate that the user input
# is a valid book ID
def clean_book_id(self):
try:
book_id = int(self.cleaned_data["book_id"])
except:
book_id = None
if book_id and Book.objects.filter(uid=book_id).count():
return book_id
else:
raise forms.ValidationError("Please enter a valid book ID number.")
views.py
:
from django.shortcuts import render_to_response
from myapp.models import Book
def form_view(request):
if request.method == "POST":
# the user has submitted the form, see if we have a book
book_id_form = EnterIDForm(request.POST) # instantiate our form class with the user data
if book_id_form.is_valid():
# if our form is valid, then we have a book_id that works:
the_book = Book.objects.get(uid=book_id_form.cleaned_data["book_id"])
return render_to_response("book_template.html", { "the_book": the_book }, context_instance=RequestContext(request))
# if the form wasn't valid, it will fall through to the other return statement.
else:
# If the user didn't submit a form, instantiate a blank one.
book_id_form = EnterIDForm()
return render_to_response("form_template.html", { "book_id_form": book_id_form }, context_instance=RequestContext(request))
我想輸入字段收集來自 「UID」用戶並顯示來自Book model instanc的所有數據e其中uid是數據庫中的某本書。
我理解表單是如何與視圖和後面的模板綁定的,但我似乎無法使其工作。
我已經無窮無盡地搜索了Django網站和許多其他資源,但我可以從中學習一些示例,但沒有任何結果。
任何人都在幫助我嗎?
謝謝。
什麼是您的具體問題?你的表單代碼在哪裏? –
正如Aamir所說,您嘗試使用的部分代碼可能會幫助我們發現問題所在。 – asermax
安東尼,請編輯你的問題與表格代碼請,以及應該處理它的觀點。 –