跨多个关系的 Django 数据库查询

Bogdan Prădatu

鉴于以下模型:

class Assets(models.Model):
    assettag = models.CharField()
    ...
    pass

class Employees(models.Model):
    loginname = models.CharField()
    pass

class Item(models.Model):
    descr = models.CharField()
    asset = models.OneToOneField('Assets')
    ...

class Assignments(models.Model):
    employeeid = models.ForeignKey('Employees')
    assetid = models.ForeignKey('Assets')
    ...

我可以使用 Q 对象进行查询,返回Item包含某个descr或某个的所有模型assettag

Item.objects.filter(Q(asset__assettag__icontains = query) |
                    Q(descr__icontains = query) #|
                    ).order_by('asset__assettag')

是否也可以employeeid__loginname以某种方式包括在内我想不出这样做的方法。

我想检索Assets中引用的Item并且属于某个Employee.

桑迪普

首先在作业模型中添加一个“related_name”。

assetid = models.ForeignKey(Assets, related_name='asset_related_name')

那么你可以使用这个 asset__asset_related_name__employeeid__loginname

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章