def test_factory_calls(self): child_formset = inlineformset_factory(test_models.Building, test_models.Tenant) nestedformset_factory( test_models.Block, test_models.Building, nested_formset=child_formset, )
def test_fk_name_for_factory(self): fk_name = "block" # Should pass because fk_name is valid nested_formset = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=self.child_formset, fk_name="block" )() # Fails because address is not fk with self.assertRaises(ValueError): nested_formset = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=self.child_formset, fk_name="address" )()
def setUp(self): child_formset = inlineformset_factory( test_models.Building, test_models.Tenant, fields=( 'name', 'unit', ), ) self.formset_class = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=child_formset, ) self.block = test_models.Block.objects.create() self.building = test_models.Building.objects.create( block=self.block, address='829 S Mulberry St.', ) self.tenant = test_models.Tenant.objects.create( building=self.building, name='John Doe', unit='42', )
def test_factory_returns_formset(self): nested_formset = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=self.child_formset ) self.assertTrue(issubclass(nested_formset, BaseInlineFormSet))
def test_exclude_fields_for_factory(self): nested_formset = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=self.child_formset, exclude=("address",) ) self.assertEqual(tuple(nested_formset.form.base_fields.keys()), ("block",))
def test_fk_name_for_factory(self): fk_name = 'block' # Should pass because fk_name is valid nested_formset = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=self.child_formset, fk_name='block')() # Fails because address is not fk with self.assertRaises(ValueError): nested_formset = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=self.child_formset, fk_name='address')()
def test_validate_min_for_factory(self): # Default is False validate_min = True nested_formset = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=self.child_formset, validate_min=validate_min ) self.assertEqual(validate_min, nested_formset.validate_min)
def setUp(self): child_formset = inlineformset_factory(test_models.Building, test_models.Tenant) self.formset_class = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=child_formset, )
def setUp(self): child_formset = inlineformset_factory(test_models.Building, test_models.Tenant, fields=("name", "unit")) self.formset_class = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=child_formset ) self.block = test_models.Block.objects.create()
def get_form_class(self): return nestedformset_factory(models.Block, models.Building, nested_formset=inlineformset_factory( models.Building, models.Tenant, fields='__all__'))
def test_min_num_for_factory(self): num = 3 nested_formset = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=self.child_formset, min_num=num ) self.assertEqual(num, nested_formset.min_num)
def test_factory_returns_formset(self): nested_formset = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=self.child_formset, ) self.assertTrue(issubclass(nested_formset, BaseInlineFormSet))
def setUp(self): child_formset = inlineformset_factory(test_models.Building, test_models.Tenant, fields=("name", "unit")) self.formset_class = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=child_formset ) self.block = test_models.Block.objects.create() self.building = test_models.Building.objects.create(block=self.block, address="829 S Mulberry St.") self.tenant = test_models.Tenant.objects.create(building=self.building, name="John Doe", unit="42")
def test_min_num_for_factory(self): num = 3 nested_formset = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=self.child_formset, min_num=num) self.assertEqual(num, nested_formset.min_num)
def test_validate_min_for_factory(self): # Default is False validate_min = True nested_formset = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=self.child_formset, validate_min=validate_min) self.assertEqual(validate_min, nested_formset.validate_min)
def get_form_class(self): return nestedformset_factory( models.Block, models.Building, nested_formset=inlineformset_factory( models.Building, models.Tenant ) )
def get_form_class(self): return nestedformset_factory( Restaurant, MenuCategory, extra=1, nested_formset=inlineformset_factory( MenuCategory, MenuItem, fields='__all__', widgets={'image_file': forms.FileInput}, extra=1))
def get_context_data(self, *args, **kwargs): ctx = super(CreateClient, self).get_context_data(*args, **kwargs) ctx['formset'] = nestedformset_factory( Client, Address, extra=1, nested_formset=inlineformset_factory(Address, Attachment, extra=1, fields='__all__')) return ctx
def test_exclude_fields_for_factory(self): nested_formset = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=self.child_formset, exclude=('address', ), ) self.assertEqual( tuple(nested_formset.form.base_fields.keys()), ('block', ), )
def setUp(self): child_formset = inlineformset_factory( test_models.Building, test_models.Tenant, fields=( 'name', 'unit', ), ) self.formset_class = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=child_formset, )
def test_override_fields_for_factory(self): nested_formset = nestedformset_factory( test_models.Block, test_models.Building, nested_formset=self.child_formset, fields=( 'block', ), ) self.assertEqual( tuple(nested_formset.form.base_fields.keys()), ('block',), )
def get_form_class(self): return nestedformset_factory( Folder, File, nested_formset=inlineformset_factory( File, FileRate, formset=FileInlineFormset, fields=('is_deletable', 'putio_user', 'file', 'rating'), extra=0, can_delete=False, ), formset=FolderNestedFormset, fields=('putio_id', 'putio_name', 'size', 'folder'), extra=0, can_delete=True, )
def formset_view(request): TabFormSet = nestedformset_factory(Parent, Tab, form=TabForm, extra=3, nested_formset=inlineformset_factory( Tab, SubList, form=SubListForm, extra=5)) tabs = TabFormSet() context = { "tabs": tabs, } if tabs.is_valid(): pass return render(request, 'formset.html', context)
def get_success_url(self): return reverse('blocks-list') class ListBlocksView(ListView): model = models.Block class CreateBlockView(BlockView, CreateView): pass NestedBlockForm = nestedformset_factory( models.Block, models.Building, nested_formset=inlineformset_factory( models.Building, models.Tenant ) ) BlockForm = inlineformset_factory(models.Block, models.Building) class EditBuildingsView(BlockView, UpdateView): template_name = 'blocks/building_form.html' form_class = NestedBlockForm class EditBuildingsDynamicView(BlockView, UpdateView): template_name = 'blocks/building_form_dynamic.html'
class BaseSaleQuestionaryQuestionFormset(FormKwargsNestedFormsetMixin): def clean(self): if self.is_bound and (self.total_form_count() - len(self.deleted_forms)) == 0: raise forms.ValidationError(u'Заполните список вопросов!') super(BaseSaleQuestionaryQuestionFormset, self).clean() SaleQuestionaryQuestionFormset = nestedformset_factory( Questionary, QuestionaryQuestion, formset=BaseSaleQuestionaryQuestionFormset, nested_formset=SaleQuestionaryAnswerFormset, form=QuestionaryQuestionForm, fields=('text', 'question_type',), widgets={ 'text': forms.Textarea(attrs={'class': 'form-control', 'rows': '2', 'placeholder': 'введите текст вопроса'}), 'question_type': forms.RadioSelect() }, can_delete=True, extra=0 ) class SaleQuestionaryUpdateForm(SaleQuestionaryCreateForm, BlockedModelFormMixin): def __init__(self, *args, **kwargs): super(SaleQuestionaryUpdateForm, self).__init__(*args, **kwargs) self.question_formset = SaleQuestionaryQuestionFormset( instance=self.instance, data=self.data or None, form_kwargs={'blocked': self.blocked}) def save(self, commit=True):
return reverse('blocks-list') class ListBlocksView(ListView): model = models.Block class CreateBlockView(BlockView, CreateView): pass NestedBlockFormSet = nestedformset_factory( models.Block, models.Building, nested_formset=inlineformset_factory( models.Building, models.Tenant, fields='__all__' ) ) BlockFormSet = inlineformset_factory(models.Block, models.Building, fields='__all__') class EditBuildingsView(BlockView, UpdateView): template_name = 'blocks/building_form.html' form_class = NestedBlockFormSet class EditBuildingsDynamicView(BlockView, UpdateView):
required=False) class Meta: model = Answer fields = ['text', 'is_right'] QuestionAnswersFormset = nestedformset_factory( Test, Question, form=QuestionForm, nested_formset=inlineformset_factory( Question, Answer, form=AnswerForm, max_num=4, min_num=4, validate_min=True, extra=0, ), extra=0, min_num=5, validate_min=True, ) class AnswerProcessForm(forms.Form): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) if kwargs.get('initial'): choices = kwargs['initial']['choices']