2014-04-15 183 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(), 
    }