gpt4 book ai didi

python - 如何检查数据库中是否存在对象,然后将其插入到django中的表单中

转载 作者:行者123 更新时间:2023-11-28 16:26:54 24 4
gpt4 key购买 nike

我有以下模型:models.py

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.htmlresults.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 %}

如果数据库中有证书,代码可以正常工作,但如果不匹配,则会抛出如下错误:

error image

但是我希望错误成为代码的一部分,以告诉经销商该号码不存在并且他应该尝试另一个号码。此外,当存在证书时,我希望将其插入到 holder 字段中,而不是像现在这样从数据库中获取。我哪里错了?

最佳答案

您必须使用 Django validation并尝试按照@ilse2005 提到的方式从“干净”方法访问数据库。如果您遇到 DoesNotExist 异常,您必须在表单本身中引发错误并在模板中处理它。

关于python - 如何检查数据库中是否存在对象,然后将其插入到django中的表单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com