From 211754bfd5bc53929fe1bd43d5febf38b7fe908a Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Tue, 19 Apr 2016 12:08:19 -0300 Subject: [PATCH] Cria detalhe com pai no crud mestre detalhe --- crud/masterdetail.py | 8 ++++++++ parlamentares/test_parlamentares.py | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/crud/masterdetail.py b/crud/masterdetail.py index f1a7b46ba..e8d3ecee1 100644 --- a/crud/masterdetail.py +++ b/crud/masterdetail.py @@ -44,6 +44,14 @@ class MasterDetailCrud(Crud): def get_url_regex(cls): return r'^(?P\d+)/%s/create$' % cls.model._meta.model_name + def get_form(self, form_class=None): + form = super(MasterDetailCrud.CreateView, + self).get_form(form_class) + field = self.model._meta.get_field(self.crud.parent_field) + parent = field.related_model.objects.get(pk=self.kwargs['pk']) + setattr(form.instance, self.crud.parent_field, parent) + return form + class DetailView(CrudDetailView): @classmethod diff --git a/parlamentares/test_parlamentares.py b/parlamentares/test_parlamentares.py index 81d9b35ed..03f01a42c 100644 --- a/parlamentares/test_parlamentares.py +++ b/parlamentares/test_parlamentares.py @@ -70,7 +70,7 @@ def test_dependente_submit(client): mommy.make(Partido, pk=32) mommy.make(TipoDependente, pk=3) - client.post(reverse('parlamentares:parlamentar_dependente', + client.post(reverse('parlamentares:dependente_create', kwargs={'pk': 14}), {'nome': 'Eduardo', 'tipo': 3, @@ -86,7 +86,7 @@ def test_dependente_submit(client): @pytest.mark.django_db(transaction=False) def test_form_errors_dependente(client): mommy.make(Parlamentar, pk=14) - response = client.post(reverse('parlamentares:parlamentar_dependente', + response = client.post(reverse('parlamentares:dependente_create', kwargs={'pk': 14}), {'salvar': 'salvar'}, follow=True)