Pero depende muchísimo de la relación que tenga un foro o un blog con un video.
¿un foro|blog solo puede tener un video?
¿un foro|blog puede tener cero, uno o mas videos?
¿un video puede tener cero, uno o mas blogs?
¿un foro|blog puede tener cero, uno o mas videos y un video puede estar en varios foros o blogs?
La primera forma me parece inmantenible, ademas de que probablemente viole alguna regla de normalización de base de datos. Que pasa si el mismo video quiero que este en varios foros o blogs? Vas a tener también redundancia de datos.
La segunda forma parece ser mas elegante (a nivel python), pero la verdad es que no lo es, ya que si quieres el mismo vídeo en un foro y en un blog vas a tener redundancia de datos.
Mi recomendación seria esta (asumiendo relación muchos a muchos):
Código Python:
Ver originalclass Blog(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField()
description = models.TextField()
class Foro(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField()
description = models.TextField()
class Video(models.Model):
title = models.CharField(max_length=100)
video_url = models.URLField()
created_at models.DateTimeField()
updated_at = models.DateTimeField()
class VideoBlog(models.Model):
blog = models.ForeingKey(Blog)
video = models.ForeingKey(Video)
class Meta:
unique_together = ('blog', "video")
class VideoForo(models.Model):
foro = models.ForeingKey(Foro)
video = models.ForeingKey(Video)
class Meta:
unique_together = ('foro', "video")
De manera general no veo por que debes de guardar las relaciones que existen entre (foro o blog) y videos.
Otra cosa te recomiendo que busques y leas sobre normalización de base de datos.