Hi,

When I look at the html source code generated for the regular
ManyToManyField's widget, it's an html form, not javascript...
Are you sure there is no other way?

Could you please give a full example?

I've spent quite sometime practicing with the tutorials but I'm a bit
lost on this one.

Thanks a lot!


On Nov 20, 9:04 pm, kamil <[EMAIL PROTECTED]> wrote:
> I dont think there is another way that making your hands dirty with
> javascript. ;)
> If you want to be fancy you can even make it ajax - getting the cities
> on demand
>
> On Nov 20, 9:35 am, kamil <[EMAIL PROTECTED]> wrote:
>
> > You can easily generate cities list to the javascript dynamically
> > writing the template for separate js file.
>
> > On Nov 20, 9:22 am, Julien <[EMAIL PROTECTED]> wrote:
>
> > > Hi Kamil,
>
> > > Thanks a lot for your suggestion!
>
> > > I have a few remarks though. The list of cities is dynamic, in the
> > > sense that you may add, remove cities from the database at any time
> > > using the admin interface.
> > > So how can we fetch dynamically the list of available cities to
> > > display them in the select widget?
>
> > > Also, isn't there a "recommended" way of doing? Hijacking with
> > > javascript seems more like a trick. I may be wrong.
>
> > > Thanks!  ;)
>
> > > On Nov 20, 8:13 pm, kamil <[EMAIL PROTECTED]> wrote:
>
> > > > Hi Julien
>
> > > > The simple way is hijack city select box with javascript.
> > > > You add
> > > > js=['http://herecomespathtoyour script']
> > > > to admin options in your model
> > > > js can look like this:
>
> > > > var countries = {'england': ['London','Manchester'], 'france':
> > > > ['Paris'] }
>
> > > > document.forms['your_form'].id_country.onchange = function()
> > > > { listCities(this.value) };
>
> > > > function listCities ( country ) {
> > > >     document.forms['your_form'].id_city.options.length = 0
> > > >     var l = countries[ country ].length;
> > > >     for (var i = 0; l > i; i++) {
> > > >         document.forms['your_form'].id_city.options[i] = new
> > > > Option( countries[ country ][i], countries[ country ][i]);
> > > >     }
>
> > > > }
>
> > > > I hope it helps :)
>
> > > > On Nov 19, 11:54 pm, Julien <[EMAIL PROTECTED]> wrote:
>
> > > > > Sorry, my "drawing" came out a bit funny in my previous post. Here's
> > > > > what I'd like the custom widget to look like:
>
> > > > > England
> > > > >     [  ] London   [  ] Manchester
> > > > > France
> > > > >     [  ] Paris
> > > > > Russia
> > > > >     [  ] Moscow
> > > > > USA
> > > > >     [  ] Los Angeles   [  ] New York
>
> > > > > Thanks for your help!
>
> > > > > On Nov 20, 10:51 am, Julien <[EMAIL PROTECTED]> wrote:
>
> > > > > > Hi all,
>
> > > > > > I'm a Django newbie, and I've been struggling on this for days. I've
> > > > > > also found posts on this group about similar subjects but none that
> > > > > > could directly help me...
>
> > > > > > Here are the models I've got:
>
> > > > > > class Country(models.Model):
> > > > > >     name = models.CharField(max_length=50)
> > > > > >     def __unicode__(self):
> > > > > >         return self.name
> > > > > >     class Admin:
> > > > > >         pass
>
> > > > > > class City(models.Model):
> > > > > >     name = models.CharField(max_length=50)
> > > > > >     country = models.ForeignKey(Country)
> > > > > >     def __unicode__(self):
> > > > > >         return self.name
> > > > > >     class Admin:
> > > > > >         pass
>
> > > > > > class Person(models.Model):
> > > > > >     firstName = models.CharField(max_length=30)
> > > > > >     lastName = models.CharField(max_length=30)
> > > > > >     citiesLived = models.ManyToManyField(City, null=True, 
> > > > > > blank=True)
> > > > > >     def __unicode__(self):
> > > > > >         return self.firstName + " " + self.lastName
> > > > > >     class Admin:
> > > > > >         pass
>
> > > > > > In the admin interface, when adding cities to a person's profile, 
> > > > > > you
> > > > > > get the usual ManyToMany select box.
>
> > > > > > So you may have:
> > > > > > New York
> > > > > > Manchester
> > > > > > Paris
> > > > > > London
> > > > > > Moscow
> > > > > > Los Angeles
>
> > > > > > What I'd like to get instead is a custom widget, that is a list of
> > > > > > checkboxes sorted by country, and in Alphabetic order. E.g.:
> > > > > > ________________________________________
> > > > > > |
> > > > > > England
> > > > > > |
> > > > > > |    [  ] London   [  ]
> > > > > > Manchester                                      |
> > > > > > |
> > > > > > France
> > > > > > |
> > > > > > |    [  ]
> > > > > > Paris
> > > > > > |
> > > > > > |
> > > > > > Russia
> > > > > > |
> > > > > > |    [  ]
> > > > > > Moscow
> > > > > > |
> > > > > > |
> > > > > > USA
> > > > > > |
> > > > > > |    [  ] Los Angeles   [  ] New York
> > > > > > |
> > > > > > |_______________________________________|
>
> > > > > > Could you give me some advice on how to implement that?
>
> > > > > > Many thanks!!
>
> > > > > > Julien
--~--~---------~--~----~------------~-------~--~----~
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