Good day,
This is a somewhat contrived example, but I'm having the same problem in a
real project.
Assuming continents have many countries, and countries can belong to many
continents, I have a continent_country "junction" table in the database and
am using ManyToManyField as follows...
Models:
*class Country(models.Model):*
* country_id = models.AutoField(primary_key=True)*
* country_name = models.CharField(max_length=200)*
* class Meta:*
* managed = False*
* db_table = 'country'*
* def __unicode__(self):*
* return '%s' % (self.country_name)*
*class Continent(models.Model):*
* continent_id = models.AutoField(primary_key=True)*
* continent_name = models.CharField(max_length=200)*
* country = models.ManyToManyField(Country,
db_table='continent_country', limit_choices_to=Q(country_id__exact=1))*
* class Meta:*
* managed = False*
* db_table = 'continent'*
Form:
*class ContinentForm(ModelForm):*
* class Meta:*
* model = Continent*
* widgets = {'country': CheckboxSelectMultiple}*
Using this form, everything saves as expected if I remove the
limit_choices_to=Q(country_id__exact=1)argument. However, using the form
with the ManyToManyField configured as shown causes the form to be returned
with is_valid=False in the POST, indicating that field country is required.
I traced into the django code for a bit, but as a relative rookie got
somewhat lost! Why does limiting the list prevent django from setting the
country? How to work around this? Any ideas greatly appreciated...
Thanks in advance,
Randal
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/aa1249ca-dc1b-4abb-91e8-45a174a8506f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.