在我的数据库中,有一些电子邮件应该使用在电子邮件字段中输入的表单值进行检查
models.py
class Friend(models.Model):
email = models.EmailField(max_length=100)
forms.py
class FriendForm(forms.ModelForm):
class Meta:
model = Friend
fields = ['email']
views.py
def check(request):
if request.method == "POST":
form = FriendForm(request.POST)
if form.is_valid():
queryset = Friend.objects.all
return render(request,"two.html",{"queryset":queryset})
else:
form = FriendForm()
return render(request, 'emaill.html', {'form': form})
emaill.html
<body>
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" name="Submit">
</form>
</body>
two.html
<body>
<h1>found</h1>
{% for obj in queryset %}
{{obj.email}} </br>
{% endfor %}
</body>
当用户提交任何应该使用模型电子邮件检查的电子邮件,这意味着现有的电子邮件如果匹配应该呈现给two.html它应该显示连接 如果邮件与数据库中的邮件不匹配,则应该不显示此类邮件
答案 0 :(得分:1)
好的,我明白你要做什么。您正在进行电子邮件搜索。
def check(request):
if request.method == "POST":
form = FriendForm(request.POST)
if form.is_valid():
email = form.cleaned_data("email")
try:
friend = Friend.objects.get(email=email)
return render(request,"email1.html",
{"friend":friend})
except Friend.DoesNotExist:
return render(request, "email1.html", {"form":form})
如果您对连接它们感兴趣,那么您应该使用ModelManager的get方法(对象)。如果它存在,那将返回单个对象。 在您的模板中。正如您所看到的,我通过使用模板中的条件在一个额外的模板上保存了一些输入。
{% if form %}
#display your form
{% else %}
#display the friend as you want
{% endif %}
我建议你慢一点,多做一些文档阅读。我在这里。请注意,我将您的查询集更改为朋友。 queryset是误导性的,因为它指出你想要多个对象。因此,在您的模板中,您无法进行迭代,而是在不进行迭代的情况下显示朋友。
{{ friend }}