2

次のようなさまざまなタイプのモデルクラスを含むDjangoモデルクラスがあります。

Content > (Audio, Video, Image)

Content.objects.filter() や Content.objects.recent() のように、この親モデルに対してクエリを実行したいと考えています。これについてどうすればいいですか?現在、私は django の具体的なモデルの継承を使用しています。これは、親クラスの結合を使用することで、データベースのパフォーマンスに多くの耳を傾けると思います。親クラスでクエリを実行できないため、抽象クラスを使用できません。ここに私のモデル定義があります:

class BaseContent(models.Model):
"""
    Concrete base model to encompass all the local and social content.
    We need a single queryset for all the content on the app.
"""
    title = models.CharField(_('title'), max_length=255, default='')
    description = models.TextField(_('description'), default='', blank=True)
    publisher = models.ForeignKey(settings.AUTH_USER_MODEL)

    allow_comments = models.BooleanField(default=False)
    is_public = models.BooleanField(default=True)

    created = AutoCreatedField(_('created'))

    objects = BaseContentManager()


class Video(BaseContent):
    ACTIVITY_ACTION = 'posted a video'

    UPLOAD_TO = 'video_files/%Y/%m/%d'
    PREVIEW_UPLOAD_TO = 'video_frames/%Y/%m/%d'

    video_file = models.FileField(_('video file'), upload_to=UPLOAD_TO)
    preview_frame = models.ImageField(
        _('Preview image'), upload_to=PREVIEW_UPLOAD_TO, blank=True,
        null=True)
    category = models.ForeignKey(VideoCategory, blank=True, null=True)
    num_plays = models.PositiveIntegerField(blank=True, default=0)
    num_downloads = models.PositiveIntegerField(blank=True, default=0)

前もって感謝します。

4

1 に答える 1