2010-05-17 35 views
11

Tôi muốn có thể sử dụng biểu mẫu tùy chỉnh trong một modelformset_factory. Ví dụ:Sử dụng biểu mẫu tùy chỉnh trong nhà máy 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()) 

Đoạn mã trên chỉ hoạt động tốt, nhưng lưu ý tôi không sử dụng AuthorForm. Câu hỏi đặt ra là làm thế nào tôi có thể nhận được modelformset_factory để sử dụng AuthorForm (mà tôi dự định tùy chỉnh sau này) thay vì tạo một biểu mẫu Author mặc định?

Trả lời

20

Tôi nghĩ rằng bạn sẽ có thể vượt qua các hình thức mô hình tùy chỉnh như sau:

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

Cảm ơn. Tôi thấy rằng bằng cách nhìn vào nguồn ngay sau khi tôi đăng câu hỏi. Tôi ngạc nhiên là tôi không vấp phải lựa chọn đó trong tài liệu. Bạn có liên kết đến bất kỳ tài liệu nào cho biết đây là một tùy chọn không? – jamida

+0

Tôi nghĩ rằng các tài liệu gần nhất nói đến nó là trong nói rằng một ModelFormset là "chỉ" một Formset biết về mô hình, vì vậy bạn có thể sử dụng các đối số từ formset_factory trong modelformset_factory. Tài liệu cho formset_factory cho biết bạn có thể chỉ định lớp biểu mẫu. Có vẻ như có một thư từ tương tự từ modelformset_factory đến inlineformset_factory. – jcdyer

+0

tại đây bạn có liên kết trong tài liệu django https://docs.djangoproject.com/en/1.5/ref/forms/models/ – maazza

Các vấn đề liên quan