2014-04-15 119 views
0

我有這種形式的信用卡網關:Django的表單字段不是沒有顯示出來

class CreditCardForm(forms.Form): 
    SessionId = forms.CharField(widget=forms.HiddenInput()) 
    CardHolderName = forms.CharField(label=ugettext('Cardholder Name'), max_length=64, required=True) 
    CardNumber = forms.CharField(label=ugettext("Card Number"), min_length=12, max_length=20, required=True) 
    ExpiryMonth = forms.CharField(label="", min_length=2, max_length=2, required=True) 
    ExpiryYear = forms.CharField(label="", min_length=2, max_length=2, required=True) 
    Cvc2 = forms.CharField(label=ugettext("CVC"), min_length=3, max_length=4, required=True) 
    UserTxnData1 = forms.CharField(label=ugettext("Card Alias"), max_length=64, required=False) 
    helper = Helper() 

而這個幫手,我想重複使用不同的信用卡網關:

class Helper(FormHelper): 
    layout = Layout(Fieldset('Card Details', 
      RowFluid(Column(Field('CardHolderName',css_class="large-8 small-12")), 
      RowFluid(Column(Field('CardNumber',css_class="large-8 small-12")), 
      RowFluid(Column(Field('ExpiryMonth',css_class="large-8 small-12")), 
      RowFluid(Column(Field('ExpiryYear',css_class="large-8 small-12")), 
      RowFluid(Column(Field('Cvc2',css_class="large-8 small-12")), 
      RowFluid(Column(Field('UserTxnData1',css_class="large-8 small-12")), 
    )) 

問題是,SessionId是特定於此網關窗體,它沒有在助手中定義,它沒有顯示在呈現的形式。

回答

0

我覺得香脆的形式只顯示你在佈局助手中定義的東西,如果你使用它。要隱藏該字段,請嘗試將其添加爲字段並在您的表單中添加如下內容:

class Meta: 
    model = YourModel 
    fields = (
     'session_id', 
     ..., # all the fields you want to include 
    ) 
    widgets = { 
     'session_id': forms.HiddenInput(), 
    }