使用Django Crispy Forms渲染单独的MultiWidget字段
发布时间:2021-01-24 05:26:19 所属栏目:Python 来源:互联网
导读:我的具体情况是我需要在一行中渲染这个字段(使用Bootstrap 3): 所以类似于: div class=form-group labelAmount:/label div class=row input name=amount_0 type=number class=col-xs-8 select nam
我的具体情况是我需要在一行中渲染这个字段(使用Bootstrap 3): 所以类似于: <div class="form-group"> <label>Amount:</label> <div class="row"> <input name="amount_0" type="number" class="col-xs-8"> <select name="amount_1" class="col-xs-4">...</select> </div> </div> 使用:https://github.com/jakewins/django-money 模型: from djmoney.models.fields import MoneyField class MyModel(models.Model): ... amount = MoneyField(...) ... 形成: class MyForm(forms.ModelForm): ... @property def helper(self): helper = FormHelper() helper.form_tag = False helper.layout = Layout() helper.layout.fields = [ ... 'amount',... ] return helper ... 解决方法django-crispy-forms不处理字段小部件的呈现,django处理它.与django.forms.MultiWidget相同.django-crispy-forms不会单独渲染MultiWidget中的每个字段. 见: 这是如何在Django 1.10-中将MultiWidget呈现为twitter-bootstrap-3列: from djmoney.forms.widgets import MoneyWidget class CustomMoneyWidget(MoneyWidget): def format_output(self,rendered_widgets): return ('<div class="row">' '<div class="col-xs-6 col-sm-10">%s</div>' '<div class="col-xs-6 col-sm-2">%s</div>' '</div>') % tuple(rendered_widgets) class BookingForm(forms.ModelForm): ... def __init__(self,*args,**kwargs): super(BookingForm,self).__init__(*args,**kwargs) amount,currency = self.fields['amount'].fields self.fields['amount'].widget = CustomMoneyWidget( amount_widget=amount.widget,currency_widget=currency.widget) ... 对于Django 1.11: 由于 class CustomMoneyWidget(MoneyWidget): template_name = 'widgets/money.html' 使用模板money.html <div class="row"> <div class="col-xs-6 col-sm-10"> {% with widget=widget.subwidgets.0 %} {% include widget.template_name %} {% endwith %} </div> <div class="col-xs-6 col-sm-2"> {% with widget=widget.subwidgets.1 %} {% include widget.template_name %} {% endwith %} </div> </div> (编辑:商洛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- django – 必须使用对象pk或slug调用通用详细信息视图
- Python合并两个字典的常用方法与效率比较
- 在cygwin下,如何配置Mercurial以使用WinMerge进行合并?
- Python中转换角度为弧度的radians()方法
- python – matplotlib绘制小图像,无需重新采样
- import pyttsx在python 2.7中工作,但不在python3中
- python – 关于Pandas Dataframe的Kurtosis doent工作
- 最优雅的方式来分离基于模式的列表(Python)
- python包命名空间的背后是什么:z3c,zc,collective?
- 如何在多个核心上运行Keras?