Beispiel #1
0
    def __init__(self, data=None, files=None, instance=None,
                 save_as_new=False, prefix=None, queryset=None, **kwargs):
        if self.parent_fk_name:
            if instance is None:
                self.instance = self.fk.model()
            else:
                self.instance = instance

            self.save_as_new = save_as_new
            if self.instance.id:
                object = getattr(instance, self.parent_fk_name)
                if object and object.id:
                    qs = self.model.objects.filter(pk=object.id)
                else:
                    qs = self.model.objects.none()
            else:
                qs = self.model.objects.none()
                self.extra = 1
            BaseModelFormSet.__init__(self, data, files, prefix=prefix,
                                      queryset=qs, **kwargs)
        else:
            BaseInlineFormSet.__init__(self,
                data=data,
                files=files,
                instance=instance,
                save_as_new=save_as_new, prefix=prefix, queryset=queryset, **kwargs)
Beispiel #2
0
 def clean(self):
     BaseInlineFormSet.clean(self)
     for form in self.forms:
         if 'matriculas-0-DELETE' in form.data:
             raise ValidationError(
                 "Você não pode remover a primeira matrícula.")
         if not form.data['matriculas-0-numero']:
             raise ValidationError(
                 "A primeira matrícula não pode ser vazia.")
Beispiel #3
0
 def total_form_count(self):
     if self.initial_extra:
         count = len(self.initial_extra) if self.initial_extra else 0
         count += self.extra
         return count
     else:
         return BaseInlineFormSet.total_form_count(self)
Beispiel #4
0
 def initial_form_count(self):
     """
     set 0 to use initial_extra explicitly.
     """
     if self.initial_extra:
         return 0
     else:
         return BaseInlineFormSet.initial_form_count(self)
Beispiel #5
0
 def total_form_count(self):
     """
     here use the initial_extra len to determine needed forms
     """
     if self.initial_extra:
         count = len(self.initial_extra) if self.initial_extra else 0
         count += self.extra
         return count
     else:
         return BaseInlineFormSet.total_form_count(self)
Beispiel #6
0
    def __init__(self,
                 data=None,
                 files=None,
                 instance=None,
                 save_as_new=False,
                 prefix=None,
                 queryset=None,
                 **kwargs):
        if self.parent_fk_name:
            if instance is None:
                self.instance = self.fk.model()
            else:
                self.instance = instance

            self.save_as_new = save_as_new
            if self.instance.id:
                object = getattr(instance, self.parent_fk_name)
                if object and object.id:
                    qs = self.model.objects.filter(pk=object.id)
                else:
                    qs = self.model.objects.none()
            else:
                qs = self.model.objects.none()
                self.extra = 1
            BaseModelFormSet.__init__(self,
                                      data,
                                      files,
                                      prefix=prefix,
                                      queryset=qs,
                                      **kwargs)
        else:
            BaseInlineFormSet.__init__(self,
                                       data=data,
                                       files=files,
                                       instance=instance,
                                       save_as_new=save_as_new,
                                       prefix=prefix,
                                       queryset=queryset,
                                       **kwargs)
Beispiel #7
0
 def initial_form_count(self):
     if self.initial_extra:
         return 0
     else:
         return BaseInlineFormSet.initial_form_count(self)