Javascript Django:找到用户时突出显示表行

Javascript Django:找到用户时突出显示表行,javascript,python,django,Javascript,Python,Django,我有两个模型(参与者、持有者),它们具有相同的字段:名字,姓和出生日期 在我的参与者模型的详细视图中,我检查这些字段是否与我的持有者模型中的字段相同: for holder in Holder.objects.all(): if participant.last_name == holder.last_name and participant.first_name == holder.first_name and participant.date_of_birth == holder.d

我有两个模型(参与者、持有者),它们具有相同的字段:
名字
出生日期

在我的参与者模型的详细视图中,我检查这些字段是否与我的持有者模型中的字段相同:

for holder in Holder.objects.all():
    if participant.last_name == holder.last_name and participant.first_name == holder.first_name and participant.date_of_birth == holder.date_of_birth:
        has_item = True
然后用
render\u to\u响应返回

return self.render_to_response({
        'has_item': has_item,
    })
在我的HTML中,我得到了:

<td>{% if has_item %}<a href="{% url 'vouchers:holders' %}">Voucher(s) found</a> {% else %}No voucher found{% endif %}</td>
{%if有项目%}{%else%}找不到凭证{%endif%}
这将用户从“我的参与者”的“详细信息”视图链接到“我的凭单”的“列表视图”,并在表中列出所有持有人。现在我的问题是,当将用户重定向到此列表时,是否可以以某种方式突出显示发现拥有凭证的确切用户

因此,例如,如果
John Doe
有一张代金券,则在他的个人资料中显示链接,该链接将他重定向到所有持有人的列表,并突出显示其
名字
姓氏
出生日期
相同的每一行


使用JavaScript是否可能做到这一点?

无论您做什么,都不应该遍历所有对象来查找匹配项。至少要求db这样做:

try:
    matching_holder = Holder.objects.get(first_name=participant.first_name, last_name=participant.last_name, date_of_birth=participant.date_of_birth)
except Holder.DoesNotExist:
    matching_holder = None
现在,您可以在模板中使用
匹配\u holder


但正如我所说,您根本不应该这样做,您应该使用外键或其他关系字段。

您应该显示您的模型。你做事情的方式看起来很奇怪-参与者和持有者之间应该有一个外键(反之亦然),而不是匹配名字和姓氏。等等,你手动筛选你的数据库吗?不要那样做!效率极低。数据库不仅可以更方便地访问数据,还可以实现索引,使查找速度加快几个数量级。@DanielRoseman我知道使用PK/FK会更好,但现在匹配名称和年龄就足够了:)我会更新我的models@WillemVanOnsem我对django没那么在行,所以我认为这是一个很好的方法,有没有更好的方法呢?也就是说,我真的建议您首先“规范化”数据库,然后引入外键。目前,它不仅可能不美观,而且效率低下,而且存在数据重复。