我有以下型号:models.py
如何检查是否存在于数据库中的对象,然后将其插入一个表格在Django
name = models.CharField(max_length=100, blank=False, null=False)
serial_number = models.CharField(max_length=100, blank=False, null=False)
make = models.CharField(max_length=100, blank=False, null=False)
model = models.CharField(max_length=100, blank=False, null=False)
color= models.CharField(max_length=100, blank=False, null=False)
date_acquired = models.DateTimeField(auto_created=True)
acquired_from = models.CharField(max_length=100, choices=ACQUIRED_FROM)
holder = models.ForeignKey(CertificateHolder, blank=False,)
dealer_license = models.ForeignKey(Dealer, blank=False)
我创建使用ModelForm
形式是这样的:
class IssueItemForm(ModelForm):
class Meta:
model = IssuedItem
fields = '__all__'
经销商需要在签发物品前检查证书持有人是否存在,我的代码看起来像这样;
views.py:
def search(request):
try:
query = request.GET.get('q')
results = 0
except ValueError:
query = None
results = None
if query:
results = CertificateHolder.objects.get(cert_no=query)
context = RequestContext(request)
return render_to_response('core/results.html', {"results": results, }, context_instance=context)
然后,我有模板search.html
和results.html
<form method="get" action="/search/">
<input type="text" name="q" id="id_q" value="{{ query }}"/>
<input type="submit" value="Search" />
</form>
在results.html我
{% if results %}
<h3>The Certificate number is valid</h3>
<h3>To issues an item click the button below</h3>
<a href="{% url 'issueitem' %}">Issue A New Item</a>
{% else %}
<h3 class='error'>Please enter a valid Certificate</h3>
<form method="get" action="/search/">
<input type="text" name="q" id="id_q" value="{{ query }}"/>
<input type="submit" value="Search" />
</form>
{% endif %}
代码工作如果在数据库中的证书,但如果没有匹配它会抛出如下错误:
但是我希望这个错误成为代码的一部分,告诉经销商该数字不存在,他应该尝试另一个。另外,当证书存在时,我希望将它插入到持有者字段中,而不是像现在这样从数据库中获取。我哪里错了?
你可以在那里处理那个错误,并返回渲染来回应一些HTML页面,它说,尝试另一个经销商 –