3

私は基本的に、この質問で説明されていることとは反対のことをしようとしています: Django:filtering order_by a generic relationship

class Translation(models.Model):
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    object = generic.GenericForeignKey('content_type', 'object_id')
    field = models.CharField(max_length=64) #field from the translated model
    language = models.CharField(max_length=8, choices=settings.LANGUAGES, verbose_name=_("language"))
    text = models.TextField() #translation

class Category(models.Model):
    translations = generic.GenericRelation(Translation)
    name = models.CharField(max_length=128, verbose_name=_("Name"))
    slug = models.SlugField(blank=True, default="", verbose_name=_("Slug"))

すべての翻訳を取得し、カテゴリ名で並べ替えたいと思います。このようなもの:

Translation.objects.all().order_by('object__name')

しかしobject、データベースの列ではないため、これは機能しません。で注文しようとしてcontent_type__nameもうまくいきません。

4

2 に答える 2

0

この投稿は同じ質問をしましたが、それは単に不可能であることがわかりました. raw()残念ながら、手動で SQL クエリを作成するには を使用する必要があるようです。

于 2012-11-28T00:32:39.237 に答える