我在下面有一个模型,它指向一个通用的关系。这可以是联系人对象或客户对象。
class Unsubscribe(models.Model):
"""
Notes:
See: http://www.screamingatmyscreen.com/2012/6/django-and-generic-relations/
"""
content_type = models.ForeignKey(ContentType, help_text="Represents the name of the model")
object_id = models.PositiveIntegerField(help_text="stores the object id")
content_object = generic.GenericForeignKey('content_type', 'object_id')
reason = models.CharField(max_length=60)
request_made = models.DateTimeField(auto_now_add=True,
help_text="Shows when object was created.")
class Meta:
ordering = ['-request_made']
Run Code Online (Sandbox Code Playgroud)
我想列出所有取消订阅的客户和仅针对用户的联系人。
queryset = Unsubscribe.objects.filter()
Run Code Online (Sandbox Code Playgroud)
以上为我提供了所有取消订阅的客户和任何用户的联系人,通常我会通过这样做来解决这个问题....
queryset = Unsubscribe.objects.filter(user=request.user)
Run Code Online (Sandbox Code Playgroud)
但是,取消订阅对象没有用户,但客户和联系人都有。
那么如何过滤通用关系呢?
你可以试试这个
Unsubscribe.objects.filter(content_type__name='user', user=request.user)
Run Code Online (Sandbox Code Playgroud)
对于content_type__name='user'指定的用户模型类或任何你与它相关的名称。
或者这也
Unsubscribe.objects.filter(content_type__name='user', object_id=request.user.id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5076 次 |
| 最近记录: |