Okay, I found one workaround in the archives (http://groups.google.com/ group/django-users/browse_thread/thread/11d4a135c929ab7d). The workaround is to instantiate the mapping as a model class in and of itself, e.g.:
class MappingAlbumSong(models.Model): song = models.ForeignKey(Song) album = models.ForeignKey(Album) track_number = models.IntegerField() However, this seems clunky and inelegant -- at this point it's just an exact duplication of the database tables, and the application loses some of the nice abstraction of many-to-many relationships that I saw as the point of using Django's model system in the first place. It also makes more work on the code side since (I think) I would have to modify both the Album and Song models to contain a MappingAlbumSong field, complicating queries for data like an album's tracklist ordered by track number (which is the primary task I want to accomplish). Does anyone else have ideas or suggestions? Any help would be appreciated! On Jan 4, 11:58 pm, Topher <[EMAIL PROTECTED]> wrote: > Hi, I am new to Django, so please forgive me if my question is very > basic and/or stupid. > > I would like to keep track of Song and Album models, with a many-to- > many relationship between the two (albums contain multiple songs, and > songs can appear on multiple albums). > > class Song(models.Model): > title = models.CharField(max_length=300) > > class Album(models.Model): > title = models.CharField(max_length=300) > tracks = models.ManyToManyField(Song) > > What I'd like to do is have the ManyToManyField have some notion of > what track number a song is on an album. This isn't information that > can be contained in the Song model since songs are assigned different > track numbers on different items. When I've dealt with such matters > in the past, I would set up a MySQL table with fields 'song_id', > 'album_id', 'track_number', and would thereby be able to do tasks like > getting a song's track number on any given album and getting a list of > songs sorted by track number.for a given album. Is there a way to > accomplish these tasks in Django? I expected some sort of ability to > add extra fields to the relationship table when declaring a > ManyToManyField, but so far have not been able to find any > documentation on anything like that. > > Thank you for the help! Again, I'm new to all this, so I apologize if > this is covered in some bit of documentation I missed; if that's the > case, a link to the right page would be much appreciated. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---

