У меня может быть классическая проблема, но я не нашел ни одного фрагмента, позволяющего мне это сделать.
Я хочу отсортировать эту модель по полному имени.
class ProductType(models.Model):
parent = models.ForeignKey('self', related_name='child_set')
name = models.CharField(max_length=128)
def get_fullname(self):
if self.parent is None:
return self.name
return u'%s - %s' % (unicode(self.parent), self.name)
fullname = property(get_fullname)
Я попытался отсортировать по "родителю", получил ошибка бесконечного цикла . "parent__id" не отсортирован.
Я не мог понять, как использовать annotate () для объединения строковых полей.
Я добавил пользовательский менеджер с sorted () , но он возвращает объект списка и мешает моим forms.ModelChoiceField работать.
Вот такой вот
def all(self):
return sorted(super(ProductTypeManager, self), key=lambda o: o.fullname)
Что еще есть в джангонских джунглях?
Спасибо за вашу помощь.