manytomany relationships via an intermediary table for manytomany relationships that need extra fields on the intermediary table use an intermediary model in this example an article can have multiple reporter objects and each articlereporter combination a writer has a position field which specifies the reporter s position for the given article e g staff writer
from django.db import models


class Reporter(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)

    def __str__(self):
        return "%s %s" % (self.first_name, self.last_name)


class Article(models.Model):
    headline = models.CharField(max_length=100)
    pub_date = models.DateField()


class Writer(models.Model):
    reporter = models.ForeignKey(Reporter, models.CASCADE)
    article = models.ForeignKey(Article, models.CASCADE)
    position = models.CharField(max_length=100)