Django 使用从相关模型筛选的ID列表筛选模型中的数据
我有3个模型,虽然是一对多的关系(两个模型之间),但它们之间的关系很奇怪。现在,我没有办法改变模型结构,只能使用它 型号Django 使用从相关模型筛选的ID列表筛选模型中的数据,django,django-queryset,django-orm,Django,Django Queryset,Django Orm,我有3个模型,虽然是一对多的关系(两个模型之间),但它们之间的关系很奇怪。现在,我没有办法改变模型结构,只能使用它 型号 class Note(models.Model): user_owner = models.ForeignKey('User',blank=True, null=True,related_name='note_owner') message = models.TextField() created_at = models.DateTimeField(a
class Note(models.Model):
user_owner = models.ForeignKey('User',blank=True, null=True,related_name='note_owner')
message = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
... ... ...
class SalesLead(models.Model):
user_owner = models.ForeignKey(User, models.DO_NOTHING, blank=True, null=True)
status = models.ForeignKey(LeadStatus, models.DO_NOTHING, blank=True, null=True)
name = models.CharField(max_length=255)
first_name = models.CharField(max_length=255, blank=True, null=True)
middle_name = models.CharField(max_length=255, blank=True, null=True)
last_name = models.CharField(max_length=255, blank=True, null=True)
... ... ...
class LeadNoteRelation(models.Model):
note = models.ForeignKey(Note, models.DO_NOTHING, primary_key=True, related_name = "lead_note")
lead = models.ForeignKey('SalesLead', models.DO_NOTHING)
class Meta:
unique_together = (('note', 'lead'),)
我正在尝试编写一个基于函数的视图,它将SalesLead id
和用户id
作为输入。响应应包括与此潜在客户id相关的所有注释
,以及作为输入用户id的用户/所有者
我试过:
LeadNoteRelation.objects.filter(lead__id = INPUT ID).select_related()
但这并没有给我想要的结果。请帮我拿这个。提前感谢。您可以使用以下选项进行筛选:
Note.objects.filter(
leadnoterelation__lead_id=lead_id,
user_owner_id=user_owner_id
).distinct()
Note.objects.filter(
LeadNoteRelationship\uuuuLead\uID=lead\uID,
用户\所有者\标识=用户\所有者\标识
).distinct()
在这里,您可以分别用lead和user的主键替换lead\u id和user\u owner\u id。可用于避免为每个匹配的
lead\u id
多次获取相同的Note
。Bylead\u Note\u lead\u id
是否使用leadnote relation
模型中的相关名称?因为尝试此操作会抛出一个字段错误
。你能帮我更好地理解这个Note.objects.filter(leadNoteRelationship\uuuuLead\uID=lead id,user\uOwner\uID=user id)。distinct()
对我有用。非常感谢你的邀请idea@vvk24:啊,是的,对不起。固定的。