2016-10-19 3 views
0

양식에 매개 변수를 전달하려고합니다.이 경우에는 object_id입니다. change_view에서만 사용할 얻는 형태는,이 코드는 작동합니다양식에 매개 변수를 전달할 때 오류가 발생했습니다.

내 양식 :

class MyForm(forms.ModelForm): 
    def __init__(self, *args, **kwargs): 
     self.my_id = kwargs.pop('my_id', None) 
     super(MyForm, self).__init__(*args, **kwargs) 

class Meta: 
    model = MyModel 
    fields = ('thing_to_show_a',) 

내 관리 모델 :

class MyModelAdmin(admin.ModelAdmin): 
    def change_view(self, request, obj_id): 
     self.form = MyForm 
     return super(MyModelAdmin, self).change_view(request, obj_id) 
... 

하지만 같은 ID를 전달하려고하면 형식의 매개 변수 :

class MyModelAdmin(admin.ModelAdmin): 
    def change_view(self, request, obj_id): 
     self.form = MyForm(my_id=obj_id) 
     return super(MyModelAdmin, self).change_view(request, obj_id) 
... 

내가 얻을 : self.form = MyForm에서

'MyForm' object has no attribute '__name__' 

답변

0

당신은 self.form에 클래스 객체를 할당합니다. self.form = MyForm(my_id=obj_id)에서 MyForm 클래스의 객체를 인스턴스화하고 self.form에 할당합니다.

장고는 인스턴스가 아닌 self.form에 클래스를 찾을 것으로 예상합니다.

관련 문제