python - django中的对象比较
问题描述
楷模
class Weapon_Class(models.Model):
title = models.CharField(max_length = 50)
description = models.TextField()
def __str__(self):
return self.title
class Gun(models.Model):
weapon_type = models.ForeignKey(Weapon_Class, on_delete = models.CASCADE)
name = models.CharField(max_length = 50)
magazine_size = models.IntegerField(default = 0)
damage = models.IntegerField(default = 0)
fire_rate = models.IntegerField(default = 0)
description = models.TextField()
def __str__(self):
return self.name
意见
class Weapon_class_view(ListView):
model = Weapon_Class
template_name = 'weapon_class.html'
# print(Weapon_Class.objects.all()[1].headline)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['items'] = Weapon_Class.objects.all().count()
context['weapons'] = list(Weapon_Class.objects.all())
context['arm'] = (Gun.objects.all())
return context
模板
{% for weapon in weapons %}
<div class = "wepbox" >
<a href="#"><div class = "boxy">{{ weapon.title }}</div></a>
</div>
{% for g in arm %}
{% if g.weapon_type == weapon.title %}
<h1 style="color: yellowgreen;">{{g.name}}</h1>
{% endif %}
{% endfor %}
{% endfor %}
它在浏览器上不显示任何内容,但应显示不同枪支的名称,例如 25 式(突击步枪)或 MW11(手枪)
解决方案
我找到了另一种方法。将其转换为字符串。使用 slugify
{% for g in arm %}
{% if g.weapon_type|slugify == weapon.title|slugify %}
<a href="#"><div class="subsubbox">{{ g.name }}</div></a>
{% endif %}
{% endfor %}
推荐阅读
- javascript - 尝试获取多个图像时,Angular observable 抛出状态码为 200 的错误
- android - 在图表上绘制 BLE 实时数据
- java - 使用 JCabi Java 读取 UTF-16 XML 文件
- javascript - RequireJS:“express”和“cors”的脚本错误,但不知道如何修复它
- bash - 在循环中询问用户输入,直到在命令行参数数组中找到匹配项
- ios - 如何修改现有的 iOS 应用程序以支持拆分视图
- html - 输入从哪里获得额外的宽度?
- python - Visual Studio Code 和 Autopep8 格式化程序
- python - 求解微分方程时,Numba prange 函数比范围慢
- javascript - 如何在不增加小时数的情况下将 GTM-0006 转换为 ISO