2014-06-15 4 views
0

고객 모델을 기반으로 양식을 만들고 싶습니다.Django ModelForm을 사용자 정의하는 방법

이 양식에서는 로그인 한 사용자가 수취인을 지정하고 금액을 입력 한 다음 지불하려는 계좌를 선택합니다.

이 모델과 지금까지 형식은 다음과 같습니다

class Payment(models.Model): 
    payee = models.ForeignKey(Customer) 
    amount = models.IntegerField() 
    accounts = models.ManyToManyField(BankAccount) 


class PaymentForm(forms.ModelForm): 

    class Meta:  
     model = Customer 
     widgets = { 
      'accounts': forms.CheckboxSelectMultiple(), 
     } 

이 양식의 문제는 사용자 여부 실제로, 시스템에 존재하는 모든 단일 가능한 계정에 대한 체크 박스를 생성하는 것입니다 . 사용자가 3 또는 4 만 가질 수있는 반면 수십 가지 유형의 계정이있을 수 있습니다.

양식에 사용자가 보유한 계정에 대해서만 확인란을 제공하기를 원합니다.

이렇게 할 방법이 있습니까?

+0

내가 다른 비슷한 질문에 회신. http://stackoverflow.com/questions/24225605/how-do-you-generate-a-custom-form-in-django. 여기도 마찬가지입니다. PaymentForm 클래스에서 __init__ 메소드를 재정의하십시오. – elmonkeylp

답변

0

당신은 폼의 __init__ 또는보기에 그것을 대체 할 수 있습니다 :

# whatever you use as user/customer, filter out accounts owned 
accounts = BankAcount.objects.filter(user=request.user) 
form = PaymentForm() 
form.fields['accounts'].queryset = accounts 
관련 문제