Wouldn't that give me worse performance though?  Filtering the two lists
verses making 300+ save()'s in a try/except, 90% of which won't be committed
to the database?

On Wed, Nov 26, 2008 at 9:00 AM, Jeff FW <[EMAIL PROTECTED]> wrote:

>
> If you already have a unique key on the project's name field, then
> you're good to go--no duplicates will ever get inserted.  No need to
> do any filtering ahead of time--just put each save() in a try/except
> block that catches the error you get and does nothing.
>
> -Jeff
>
> On Nov 25, 4:53 pm, "Alex Jillard" <[EMAIL PROTECTED]> wrote:
> > Thanks for the replies Jeff and Rajesh.  I'll look int both of those
> options
> > and see what I can come up with.  My model is set to have the name of the
> > project to be unique, so it was throwing an error if a duplicate was
> added.
> >
> > Jeff, unfortunatly the initial list of CVS projects is just a string that
> > I'm splitting, so I can't do it as I build that list.
> >
> > Thanks again
> >
> > On Tue, Nov 25, 2008 at 4:38 PM, Rajesh Dhawan <[EMAIL PROTECTED]
> >wrote:
> >
> >
> >
> > > Hi Alex,
> >
> > > > Here is the code that I use.  Output_list is from CVS and
> > > current_projects
> > > > is from the database.  Is there a faster way to do this, or a built
> in
> > > > method in Python?  This code works fine now, but I can see it getting
> > > slow.
> >
> > > > for b in output_list:
> > > >         found = False
> > > >         for i in current_projects:
> > > >             if i.name == b:
> > > >                 found = True
> > > >         if not found:
> > > >             new_projects.append(b)
> >
> > > Try converting the two project name lists into Python sets and take a
> > > difference:
> >
> > > full_list = set(output_list)
> > > db_list = set([i.name for i in current_projects])
> > > new_projects = full_list - db_list
> >
> > > You should also add a unique=True attribute to your project.name
> > > field.
> >
> > > -Rajesh D
> >
> >
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to