У меня есть догадка, что замена по умолчанию Manager
на objects
таким способом может быть не очень хорошей идеей, особенно если вы планируете использовать сайт администратора ... Даже если это поможет вам с вашими сотрудниками, это совсем не поможет вам при работе с отделами. Как насчет второго свойства, предоставляющего ограниченный вид на Департаменты наряду с обычным objects
? Или переместите стандартный Manager
с objects
на _objects
и переименуйте from_same_group
в objects
, если вы действительно предпочитаете оригинальный подход для своего приложения.
class Department(models.Model):
name = models.CharField(max_length=128)
group = models.ForeignKey(Group)
def __str__(self):
return self.name
objects = models.Manager()
@property
def from_same_group(self):
return Department.objects.filter(group__exact=self.group)
Кроме того, я понимаю, вы знаете, как настроить админ-сайт, чтобы воспользоваться забавным Manager
; если нет (или если я как-то неправильно понял ваш вопрос), оставьте комментарий, я постараюсь ответить в ближайшее время.
РЕДАКТИРОВАТЬ: ОК, чтобы прояснить это: если вы действительно настаиваете на замене objects
, вы, вероятно, захотите сделать это:
class Department(models.Model):
name = models.CharField(max_length=128)
group = models.ForeignKey(Group)
def __str__(self):
return self.name
_objects = models.Manager()
@property
def objects(self):
# note the _objects in the next line
return Department._objects.filter(group__exact=self.group)