Python Django活动流按目标模型中的foreignkey筛选操作

Python Django活动流按目标模型中的foreignkey筛选操作,python,django,activity-streams,django-activity-stream,Python,Django,Activity Streams,Django Activity Stream,我想过滤特定查询集的操作 到目前为止,我通过在所需模型上生成模型流来获取数据 model_stream(FillingSystem) 我想扩展这个功能,并有这样的东西 model_stream(FillingSystem.objects.filter(client__slug='my-slug')) 或 此模型如下所示: class FillingSystem(models.Model): client = models.ForeignKey('accounts.Client')

我想过滤特定查询集的操作

到目前为止,我通过在所需模型上生成模型流来获取数据

model_stream(FillingSystem)
我想扩展这个功能,并有这样的东西

model_stream(FillingSystem.objects.filter(client__slug='my-slug')) 

此模型如下所示:

class FillingSystem(models.Model):
    client = models.ForeignKey('accounts.Client')
如何通过相关的slug字段过滤流?

看起来您可以像
**kwargs
一样:

model_stream(FillingSystem, filling_system__client__slug='my-slug')
其中
target
是内容的
GenericForeignKey
(可自由选择)

您可能必须声明与
操作
模型的反向关系:

from django.contrib.contenttypes.fields import GenericRelation
from actstream.models import Action

class FillingSystem(models.Model):
    client = models.ForeignKey('accounts.Client')
    stream_actions = GenericRelation(
                         Action,
                         content_type_field='target_content_type'
                         object_id_field='target_object_id'
                         related_query_name='filling_system')

答案应该是:字段“target”不会生成自动反向关系,因此不能用于反向查询。如果它是一个通用的外键,考虑添加一个泛型关系。似乎仍然存在同样的错误:)Client =模型。ForeignKey('Client;Client’)流动作= GigialRelaction(Action)@ Efrin,很抱歉,GFK有点乱。尝试手动指定所有这些内容,就像我在(再次更新)答案中所做的那样。请注意更改后的
kwarg
。这对我不起作用,它会失败,因为
运算符不存在:character varing=integer LINE 1:。。。在(“actstream\u action”。“action\u object\u object\u id”=“notific…”上提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。
target\u object\u id使用CharField,而我的另一个模型的键是普通整数。有什么想法吗?@Hybrid我在这里提出了一个问题:作者知道。
from django.contrib.contenttypes.fields import GenericRelation
from actstream.models import Action

class FillingSystem(models.Model):
    client = models.ForeignKey('accounts.Client')
    stream_actions = GenericRelation(
                         Action,
                         content_type_field='target_content_type'
                         object_id_field='target_object_id'
                         related_query_name='filling_system')