Changeset 8215 for django/branches/gis/django/forms/models.py
- Timestamp:
- 08/05/08 12:15:33 (5 months ago)
- Files:
-
- django/branches/gis (modified) (1 prop)
- django/branches/gis/django/forms/models.py (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/gis
- Property svnmerge-integrated changed from /django/trunk:1-7978 to /django/trunk:1-8214
django/branches/gis/django/forms/models.py
r7979 r8215 9 9 from django.utils.encoding import smart_unicode 10 10 from django.utils.datastructures import SortedDict 11 from django.core.exceptions import ImproperlyConfigured12 11 13 12 from util import ValidationError, ErrorList … … 261 260 if initial is not None: 262 261 object_data.update(initial) 263 BaseForm.__init__(self,data, files, auto_id, prefix, object_data,264 error_class, label_suffix, empty_permitted)262 super(BaseModelForm, self).__init__(data, files, auto_id, prefix, object_data, 263 error_class, label_suffix, empty_permitted) 265 264 266 265 def save(self, commit=True): … … 307 306 self.queryset = queryset 308 307 defaults = {'data': data, 'files': files, 'auto_id': auto_id, 'prefix': prefix} 309 if self. _max_form_count> 0:310 qs = self.get_queryset()[:self. _max_form_count]308 if self.max_num > 0: 309 qs = self.get_queryset()[:self.max_num] 311 310 else: 312 311 qs = self.get_queryset() … … 380 379 def add_fields(self, form, index): 381 380 """Add a hidden field for the object's primary key.""" 382 self._pk_field_name = self.model._meta.pk.attname 383 form.fields[self._pk_field_name] = IntegerField(required=False, widget=HiddenInput) 381 if self.model._meta.has_auto_field: 382 self._pk_field_name = self.model._meta.pk.attname 383 form.fields[self._pk_field_name] = IntegerField(required=False, widget=HiddenInput) 384 384 super(BaseModelFormSet, self).add_fields(form, index) 385 385 … … 403 403 class BaseInlineFormset(BaseModelFormSet): 404 404 """A formset for child objects related to a parent.""" 405 def __init__(self, data=None, files=None, instance=None, save_as_new=False): 405 def __init__(self, data=None, files=None, instance=None, 406 save_as_new=False, prefix=None): 406 407 from django.db.models.fields.related import RelatedObject 407 408 self.instance = instance … … 409 410 # is there a better way to get the object descriptor? 410 411 self.rel_name = RelatedObject(self.fk.rel.to, self.model, self.fk).get_accessor_name() 411 super(BaseInlineFormset, self).__init__(data, files, prefix= self.rel_name)412 super(BaseInlineFormset, self).__init__(data, files, prefix=prefix or self.rel_name) 412 413 413 414 def _construct_forms(self): … … 442 443 if len(fks_to_parent) == 1: 443 444 fk = fks_to_parent[0] 444 if not isinstance(fk, ForeignKey) or fk.rel.to != parent_model: 445 if not isinstance(fk, ForeignKey) or \ 446 (fk.rel.to != parent_model and 447 fk.rel.to not in parent_model._meta.parents.keys()): 445 448 raise Exception("fk_name '%s' is not a ForeignKey to %s" % (fk_name, parent_model)) 446 449 elif len(fks_to_parent) == 0: … … 448 451 else: 449 452 # Try to discover what the ForeignKey from model to parent_model is 450 fks_to_parent = [f for f in opts.fields if isinstance(f, ForeignKey) and f.rel.to == parent_model] 453 fks_to_parent = [ 454 f for f in opts.fields 455 if isinstance(f, ForeignKey) 456 and (f.rel.to == parent_model 457 or f.rel.to in parent_model._meta.parents.keys()) 458 ] 451 459 if len(fks_to_parent) == 1: 452 460 fk = fks_to_parent[0]
