擅长:python、mysql、java
<p>受丹尼尔回答的启发:</p>
<pre><code>class OwnManager(models.Manager):
def __init__(self, key):
super(OwnManager, self).__init__()
self.k = key
def get_queryset(self, user):
if user.is_superuser:
return super(OwnManager, self).get_queryset()
return super(OwnManager, self).get_queryset().filter(**{self.k: user})
class Company(models.Model):
name = models.CharField(max_length=45)
objects = models.Manager()
own = OwnManager("companyuser__user")
class Publisher(models.Model):
company = models.ForeignKey(Company)
allow_latest_dev = models.BooleanField(default=False)
domains_blocked = models.BooleanField(default=False)
objects = models.Manager()
own = OwnManager("company__companyuser__user")
</code></pre>
<p>这样我就不想为每个模型创建一个愚蠢的类。在</p>
<p>谢谢丹尼尔。在</p>