2012-02-20 32 views
0

排序我有兩個型號:Django的:通過特定backwared相關的屬性

class Video(models.Model): 
    slug = models.SlugField(blank=True, default='', db_index=True, unique=True) 


class VideoTranslation(models.Model): 
    video = models.ForeignKey(Video, related_name='translations') 
    language = models.CharField(max_length=3, choices=settings.LANGUAGES) 
    name = models.CharField(max_length=255, db_index=True) 

視頻包含視頻的一些infromation,視頻翻譯包含翻譯這些影片的名字。

我想從一種語言的視頻模型中獲取它。

有可能通過SQL查詢是這樣的:

SELECT * FROM video_video IN join video_videotranslation ON video_video.id = video_videotranslation.video_id where video_videotranslation.language="en" ORDER BY video_videotranslation.name; 

,但我真的想避免原始的SQL查詢。

是否有可能使這種查詢只依賴於Django ORM?

+0

video.objects.select_related(深度= 1).filter(videotranslation__language = '恩')。ORDER_BY( 'videotranslation__name') – 2012-02-20 11:44:16

+0

爲什麼不使用類似的Django modeltranslation?用django-localeurl(或django 1.4)可以爲你節省大量的工作。 – jpic 2012-02-20 11:52:37

+0

Modeltranslation是偉大的應用程序,但我有很多的模型,完成了數據庫結構,這是我從以前develeoper了(它比例如,在複雜得多)。將它轉換爲模型轉換格式會嚇到我一點。 – 2012-02-20 14:01:47

回答

1
Video.objects.filter(translations__language__iexact='en').order_by('translations__name')