2010-05-17 2 views
11

Vorrei poter utilizzare un modulo personalizzato in modelformset_factory. Per esempio:Utilizzo di un modulo personalizzato in un factory modelformset?

models.py

class Author(models.Model): 
    name = models.CharField() 
    address = models.CharField() 

class AuthorForm(ModelForm): 
    class Meta: 
     model = Author 

views.py

def test_render(request): 
    myModelFormset = modelformset_factory(Author) 
    items = Author.objects.all() 
    formsetInstance = myModelFormset(queryset = items) 
    return render_to_response('template',locals()) 

Il codice di cui sopra funziona bene, ma nota non sto usando AuthorForm. La domanda è: come posso ottenere che modelformset_factory utilizzi AuthorForm (che prevedo di personalizzare in seguito) invece di creare un modulo di autorizzazione predefinito?

risposta

20

penso che si dovrebbe essere in grado di passare il modulo modello personalizzato in questo modo:

myModelFormset = modelformset_factory(Author, form=AuthorForm) 
+1

Grazie. L'ho trovato guardando la fonte poco dopo aver postato la domanda. Sono sorpreso di non incappare in questa opzione nella documentazione. Hai un link a qualsiasi documentazione che indica che questa è un'opzione? – jamida

+0

Penso che la documentazione che più si avvicina a menzionare è che un ModelFormset è "solo" un Formset che conosce il modello, quindi puoi usare gli argomenti da formset_factory in modelformset_factory. La documentazione per formset_factory dice che puoi specificare la classe del modulo. Sembra che ci sia una corrispondenza simile da modelformset_factory a inlineformset_factory. – jcdyer

+0

qui hai un link nella documentazione di django https://docs.djangoproject.com/en/1.5/ref/forms/models/ – maazza