2011-12-19 2 views
-1

나는 오류를 다음과 점점 오전 2 개 모델장고의 formset 문제

class A(models.Model): 
    id=models.AutoField(primary_key=True) 
    name=models.CharField(max_length=200) 


class B(models.Model): 
    id=models.AutoField(primary_key=True) 
    user=models.ForeignKey(A) 
    name=models.CharField(max_length=200) 


#forms.py 
class BForm(ModelForm): 
    class Meta: 
     model=B 
     fields=('name','user') 
    def __init__(self,user_name,*args,**kwargs): 
     super(BForm,self).__init__(*args,**kwargs) 
     if user_name: 
      self.field['user']=forms.ModelChoiceField(queryset=A.objects.filter(name__icontains=user_name) 


#views.py 

def myview(request,user_name): 
    formset=formset_factory(BForm(user_name=user_name),extra=10) 

'BForm'개체가 어떤 속성 '이름'

이 사실 난 단지의 선택적 값을 원하는 없습니다 내 formset에 표시된 클래스 A

답변

0

여기에 몇 가지 문제가 있습니다.

먼저 __init__ 메서드 양식에서 BForm 클래스가 잘못된 것처럼 보입니다. user_name은 키워드 인수이지만 사용자 아래에 사용자를 정의하지 않고 조건 아래에 if user이 있습니다.

두 번째로 formset을 정의 할 때 user_name 인수로 양식을 초기화 할 수 없습니다. 스택 오버플로 질문 Passing Custom Form Parameters to Formset에서와 같은 작업을하려는 것 같습니다.

셋째, 전체 추적을 제공하십시오. 만 역 추적 한 줄,

'BForm' object has no attribute 'name'

가 어디에 문제가 어렵게 추적 할 수 있습니다 포함된다.