python - 如何摆脱没有找到这样的校园的停车场
问题描述
我有两个模型:校园和停车场。停车场信息的数据存储在数据库中的 json 文件中。
模型.py
from django.db import models
class Campus(models.Model):
campus_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100)
def __str__(self):
return self.name
class Carpark(models.Model):
carpark_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100)
spaces = models.IntegerField()
campus_id = models.ForeignKey()
disabled_spaces = models.IntegerField()
def __str__(self):
return self.name
视图.py
from django.shortcuts import render
from django.http import HttpResponse
from parkatdcu.models import Campus, Carpark
import requests
def index(request):
context = {}
return render(request, "parkatdcu/index.html", context)
def carparks(request):
context = {}
Base_URL = 'http://jfoster.pythonanywhere.com/carparks/'
campus_name = request.GET['campus']
try:
campus = Campus.objects.get(name__iexact=campus_name)
except Campus.DoesNotExist:
print('No such campus')
return render(request,"parkatdcu/carparks.html",context)
carparks = Carpark.objects.filter(campus_id=campus)
carpark_info= []
for carpark in carparks:
URL = Base_URL + carpark.name
r = requests.get(URL).json()
if 'spaces_available' in r:
spaces_available = r['spaces_available']
else:
spaces_available = 'not available'
carpark_info.append({
'name': carpark.name,
'spaces': carpark.spaces,
'disabled_spaces': carpark.disabled_spaces,
'spaces_available': spaces_available
}
)
context['campus'] = campus_name
context['carparks'] = carpark_info
return render(request,"parkatdcu/carparks.html",context)
停车场.html
{% if campus %}
<h2>{{ campus }}</h2>
{% else %}
<h2>No such campus</h2>
{% endif %}
{% if carparks %}
<ul>
{% for carpark in carparks %}
<li>{{carpark.name}}: {{carpark.spaces}} spaces, {{carpark.disabled_spaces}} spaces for people with
disabilities
<br>Spaces available: {{ carpark.spaces_available }}<br><br>
</li>
{% endfor %}
{% else%}
<p>No carparks found</p>
{% endif %}
</ul>
当我在没有存储在 Django 数据库中的搜索框中输入校园名称时,它会同时显示“没有这样的校园”和“找不到停车场”。我如何只为不存在的校园打印“没有这样的校园”?
解决方案
你应该只需要删除上面的行
{% if campus %}
<h2>{{ campus }}</h2>
{% else %}
<h2>No such campus</h2>
{% endif %}
{% if carparks %}
<ul>
{% for carpark in carparks %}
<li>{{carpark.name}}: {{carpark.spaces}} spaces, {{carpark.disabled_spaces}} spaces for people with
disabilities
<br>Spaces available: {{ carpark.spaces_available }}<br><br>
</li>
{% endfor %}
{% else%} <--- REMOVE THIS LINE
<p>No carparks found</p> <--- REMOVE THIS LINE
</ul> <--- MOVE THIS LINE INSIDE {% endif %}
{% endif %}
推荐阅读
- terraform - 如何将变量传递给 heml.tf 中的 yaml 文件?
- azure-cosmosdb - 对 ISO 8601 格式的日期时间使用 BETWEEN 语句时,CosmosDB 中出现不正确的语法错误
- windows - Windows 上自定义开发的蓝牙鼠标的问题
- spring - 订阅多个主题时,Kafka 事件未从所有主题接收
- javascript - react-native-image-picker 不上传到服务器
- javascript - Vue.js - 在计算属性中迭代 json 以创建新对象
- environment-variables - 如何设置包含非字母数字字符的 Dokku 环境变量?
- android - 如何恢复 webview 状态
- powershell - 使用 powershell 进行站点向上或向下检查
- python - 给定带有 Facebook 帖子的数据集的 Python 情绪分析