Hmm, you posted the save method for your Event model, but not the definition. I think you haven't gotten any feed back because no one really knows what you are asking. Could you show the Event model, and then show what a finished save should look like? What should the data end up like?
Alex On Jan 17, 3:41 pm, Alastair Campbell <[email protected]> wrote: > Hi everyone, > > I have something that works, but I'm guessing it's *very* inefficient, > I'm guessing that nested for-loops for two layers of many to many > fields is bad, but how could I go about this better? > > The aim is for my admin users to fill in the sub-categories (classes), > and for the system to work out which parent categories (disciplines) > are involved. > > I have a separate model for taxonomy, and within my 'categories' > models.py I have: > > class Discipline(models.Model): > name = models.CharField(max_length=50) > slug = models.SlugField(unique=True) > > class Class(models.Model): > name = models.CharField(max_length=50) > slug = models.SlugField(unique=True) > parent_discipline = models.ManyToManyField("Discipline") > > Sorry about using 'Class' as the model name, but unfortunately it's > the only thing that makes sense for this categorisation. > (E.g. the discipline might be slalom, which has a class of amatuer within it.) > > This is added to the save method for my Events model: > > # variable the will be saved in a charfield on the event. > disciplines = [] > # get the related many to many field which has all the 'classes' > classes = self.classes_involved.all() > > for this_class in classes: > parent_disciplines = this_class.parent_discipline.all() > for disc in parent_disciplines: > disciplines.append(str(disc.name)) > > this_set = set(disciplines) > this_list = list(this_set) > self.disciplines = ', '.join(this_list) > > super(Event, self).save(*args, **kwargs) > > Any ideas on how I could go about this better? I'd hoped to make > things easier with a centrally defined taxonomy, but so far it isn't > worked to well. > > Kind regards, > > -Alastair
-- 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.

