【问题标题】:how to add widgets "form-control" in django-money如何在 django-money 中添加小部件“表单控制”
【发布时间】:2022-01-14 01:46:55
【问题描述】:

如何在 django 字段中为货币和货币代码添加小部件? 我想在该字段中添加类“表单控件”。

templates.html

<div class="col-sm-4">
    <label for="jumlahUsulanDana">Jumlah Usulan Dana</label>
        {{form.jumlah_dana_usulan}}
</div>

forms.py

class Meta:
    model           = UserUsulan
    exclude         = ['status_usulan' ,'jumlah_dana_disetujui', 
   'keterangan_operator', 'com_reviewer_1', 'com_reviewer_2' ]
    widgets = {'jumlah_dana_usulan'        : forms.TextInput({'class' : 
                'form-control', 'id' : 'jumlahUsulanDana', 'placeholder' 
                : 'Jumlah Usulan Dana'}),
              }

编辑

如果在 forms.py 中使用了 attrs,有什么想法吗?

models.py

from djmoney.models.fields import MoneyField

class UserUsulan(models.Model):
     ...
     jumlah_dana_usulan          = MoneyField(max_digits=14, decimal_places=2, default_currency='IDR')
     ...

【问题讨论】:

  • 你能在这里添加你的模型吗?
  • 也分享你的设置CURRENCY_CHOICES变量。

标签: django django-templates


【解决方案1】:

您正在使用 django-money 库 link here。这个库为此组件使用了一个多小部件,请参阅here 我可以推荐你只是自定义主小部件

执行以下操作:

from django.conf import settings
from django-money.forms.widgets import MoneyWidget


class Meta:
    # ... Your actually code.
    widgets = {
        'jumlah_dana_usulan': MoneyWidget(
            amount_widget=forms.TextInput(attrs={'class':'form-class'}),
            currency_widget=forms.Select(attrs={
                    'class':'form-control',
                    'placeholder':'Jumlah Usulan Dana',
                    'id' : 'jumlahUsulanDana',
                },
                choices=settings.CURRENCY_CHOICES,
            ),
        ),
        # ... Here more widget fields
    }

这里的重点是,您必须探索基本小部件的工作方式,并尝试通过构造函数更改 Multiwidget 的小部件。

【讨论】:

  • 那行得通,但它没有解决我的问题。因为该字段仅在数组中显示一个字段和值。像这样 [None, 'IDR'] 。我想显示两个字段货币和货币代码。就像上面的图片一样。如果我使用你的代码,我会编辑这个问题并上传一张新图片。
  • 请将您的模型添加到问题@RahmatSaudiAlFathirAs
  • 当然,我已经在编辑帖子@allexiusw
  • @RahmatSaudiAlFathirAs 看到这些变化真的很接近你正在寻找的形式只是你需要做的是根据你的数据自定义它,有些导入不能完全导入请检查它。
猜你喜欢
  • 2014-01-27
  • 1970-01-01
  • 2022-01-12
  • 2019-11-27
  • 2012-02-17
  • 2020-06-20
  • 2019-11-08
  • 1970-01-01
  • 2014-09-13
相关资源
最近更新 更多