2016-12-19 14 views
1

は私がフォームで次のフィールドがあります。前に付加またはのフィールドにアイコンを追加ジャンゴ - クリスピー・フォーム

<div class="form-group "> 
<div class="input-group"> 
    <input class="form-control" id="To" name="To" placeholder="To" type="text"/> 
    <i class="glyphicon glyphicon-map-marker form-control-feedback"></i> 
</div> 
</div> 

enter image description here

のように見え、私が持ってしようとしています同様の結果はcrispy-formsを使用します。

私は

self.helper.layout = Layout(
      Fieldset(
       'Title', 
       PrependedText(
        'From', 
        <i class="glyphicon glyphicon-map-marker"></i> 
        ), 
       'To', 
       'Date', 
       ButtonHolder(
        Submit('submit', 'Search', css_class='button white') 
       ) 
      ) 
     ) 

を試してみましたが、私はSyntaxError: invalid syntaxを取得します。

crispy-formsにPrependedTextとしてアイコンを追加することはできますか? それ以外の場合はありますか?

(編集)

self.helper.layout = Layout(
         Field(PrependedText('From', HTML('<span class="glyphicon glyphicon-map-marker"></span>')), placeholder='From'), 
         'To', 
         'Date', 
         ButtonHolder(
          Submit('submit', 'Search', css_class='button white') 
         ) 
        ) 

をしようとすると、エラーは発生しませんが、何のアイコンは表示されません。

答えて

3
self.helper.layout = Layout(
    Div(HTML(''' 
     <div class="input-group"> 
     <input class="form-control" id="To" name="To" placeholder="To" type="text"/> 
     <i class="glyphicon glyphicon-map-marker form-control-feedback"></i> 
     </div>'''), 
     class="form-group") 
+0

@NeErAjのお返事ありがとうございます。これは、そのフィールドの完全なHTMLをハードコードするようなもので、私にはそれほど意味をなさないものです。アイコン自体に関する情報を変更するだけでよい、よりエレガントな方法はありませんか? – J0ANMM

+0

クリスピーフォームはカスタムフォームデザインには適していません。デザインフォームにはHTMLハードコードを使用する必要があります。 –

1

glyphiconsを使用する代わりに、同様のUnicodeの記号を使用して次のようになります。ここ

self.helper.layout = Layout(
      Field(PrependedText('From', '&#x1f4cc'), placeholder='From'), 
      Field(PrependedText('To', '&#x1f4cc'), placeholder='To'), 
      Field(PrependedText('Date', '&#x1f4c5'), placeholder='Date'), 
      FormActions(ButtonHolder(Submit('submit', 'Search', css_class='btn btn-primary'))) 
     ) 

問題は、プレーサーホルダーが何らかの理由で...

placeholder text not visible

が動作していないですユニコードのシンボルに'&#xFE0E;'を追加すると、それがemojisにレンダリングされないように強制されます(hereのように)。それはうまくいきません。

関連する問題