I've read the docs, but there is one thing that isn't clear in using 'through' in a ManyToMany relationship.

Suppose I have a 'Convention' model and a 'Persona' model. 

'Conventions' are collections of 'Persona'.

'Persona' is a representation of a type of person but does not contain a 'count'. A varying number of 'Persona' may join one or many 'Convention' -- and that's what I need to capture. 

How do I say Convention A is made up of X number of Persona M, and Y number of Persona N? While a Persona represents a type of Person, it does not give me a count of the number of 'Persona M' attending a Convention? That's the extra data that I need to capture in the intermediate model.

That is, when setting up my models, should 'Convention' have a ManytoMany relationship to a table called 'ConventionPersonas' that has a count, a FK to Convention, and a FK to Groups?

-or-

Should I have a 'Convention' model that has a ManyToMany relationship with 'Persona' through 'ConventionPersona' -- and will that still allow a 'Persona' to be in many different 'Conventions'?

Models.py

```
class Convention(models.Model):
    personas = models.ManyToManyField(Persona through='ConventionPersona') #<-- use through here?
    name = models.CharField(max_length=255)

    def __str__(self):
        return self.name

    def save_convention(self):
        '''
        Set timestamp and save object
        '''
        self.save()

    class Meta:
        ordering = ('name',)

class Persona(models.Model):
    name = models.CharField(max_length=255)
    description = models.CharField(max_length=255)
    attributes = models.ManyToManyField(Attribute)

    def __str__(self):
        return self.name

```

--proposed new model... use 'through'? --

```
class ConventionPersona(models.Model):
    '''
    A Persona should exist as a descriptor with zero
    count allowing a it to be used with 
    different weights, or counts, for different Conventions.
    '''
    conventionId = models.ForeignKey(Convention)
    personaId = models.ForeignKey(Persona)
    count = models.IntegerField()

    def __str__(self):
        return self.name

```