2016-12-30 58 views
0

我有一个formset,我想有一个有点任意数量的表单。这里是formset类。即使有太多的方式验证django formset

class ChartDatasetForm(forms.Form): 
    """Giving the form a dataset, meant to be repeated with formsets""" 

    data_label = forms.CharField(label="Data Label", max_length=100) 
    dataset = forms.CharField(label="Data", max_length=1000) 


ChartDatasetFormset = formset_factory(
    ChartDatasetForm, min_num=1, validate_min=True, max_num=1000, validate_max=True) 

,然后我有一些像这样的测试...

class FormTests(TestCase): 
    """Testing that the forms work as expected""" 

    def setUp(self): 
     """Setting up data for forms""" 

     self.dataset = { 
      'form-TOTAL_FORMS': 2, 
      'form-INITIAL_FORMS': 0, 
      'form-MIN_NUM_FORMS': 1, 
      'form-MAX_NUM_FORMS': 1000, 
      'form-0-data_label': '', 
      'form-0-dataset': '', 
      'form-1-data_label': '', 
      'form-1-dataset': '', 
     } 

    def test_chart_dataset_validates_with_2_sets(self): 
     """Testing that the form validates when there are two datasets""" 
     for n in range(2): 
      self.dataset['form-%s-data_label' % n] = 'the labels' 
      self.dataset['form-%s-dataset' % n] = '1, 2' 
     form = ChartDatasetFormset(self.dataset) 
     self.assertTrue(form.is_valid()) 

    def test_chart_dataset_validates_with_3000_sets(self): 
     """Running up to the max amount of forms to see if it validates""" 
     for n in range(3000): 
      self.dataset['form-%s-data_label' % n] = 'the labels' 
      self.dataset['form-%s-dataset' % n] = '1, 2' 
     form = ChartDatasetFormset(self.dataset) 
     form.clean() 
     self.assertTrue(form.is_valid()) 

你可以看到,当有3000点的形式,即使我设置了max_num在1000为什么图表验证这个?

回答

2

尝试改变

'form-TOTAL_FORMS': 2 

至> 1000,我想测试测试的此属性,而不是实际的数据

'form-TOTAL_FORMS': 1003, 


Traceback (most recent call last): 
File "/home/bobby/Documents/code/python/hello/try/tests.py", line 38, in test_chart_dataset_validates_with_3000_sets 
self.assertTrue(form.is_valid()) 
AssertionError: False is not true