Tengo un Blog y un Foro, ambas aplicaciones en teoría debería compartir otra aplicación que se requiere con una relación "ForeignKey".
Código Python:
Ver original
#apps blog class Blog(models.Model): title = models.CharField(max_length=100) slug = models.SlugField() description = models.TextField() #apps foro class Foro(models.Model): title = models.CharField(max_length=100) slug = models.SlugField() description = models.TextField() #apps video from blog.models import Blog from foro.models import Foro class Video(models.Model): blog = models.ForeingKey(Blog, null=True, blank=True) foro = models.ForeingKey(Foro, null=True, blank=True) title = models.CharField(max_length=100) video_url = models.URLField() created_at models.DateTimeField() updated_at = models.DateTimeField()
La aplicación blog y foro no comparten los mismos atributos literalmente, de serlo se que podría heredar de otra clase abstract. Bueno básicamente tenemos la aplicación video que ambas aplicaciones harán uso. Que me recomiendan así esta bien o genero un modelo de video por cada aplicación:
Código Python:
Ver original
class VideoAbstract(models.Model): title = models.CharField(max_length=100) video_url = models.URLField() created_at models.DateTimeField() updated_at = models.DateTimeField() class Meta: abstract = True class ForoVideo(VideoAbstract): foro = models.ForeingKey(Foro) class BlogVideo(VideoAbstract): blog = models.ForeingKey(Blog)
Cual de estas opciones es mucho mejor, la idea del ejemplo primero es mantener todos los enlaces de video en una sola tabla y por el tema de DRY.
Gracias y un saludos