如何在Django Money中添加小部件"form-control"

3
如何在Django字段中添加货币和货币代码插件?我想在该字段中添加"class=form control"类。 templates.html

django-money in templates

<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,有什么想法?Used 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')
     ...

你能在这里添加你的模型吗? - allexiusw
请分享您的设置 CURRENCY_CHOICES 变量。 - allexiusw
1个回答

1

你正在使用django-money库,链接在这里。该库使用一个多部件来实现此组件,请参见此处。我可以建议的是只需自定义主部件。

请按照以下步骤操作:

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']。我想要显示两个字段:货币和货币代码。就像上面的图片一样。 如果我使用了你的代码,我会编辑这个问题并上传新的图片。 - Rahmat Saudi Al Fathir As
请在问题中添加您的模型 @RahmatSaudiAlFathirAs - allexiusw
当然,我已经编辑了这篇帖子 @allexiusw - Rahmat Saudi Al Fathir As
@RahmatSaudiAlFathirAs,请查看这些更改,它非常接近您所寻找的内容,您需要做的就是根据您的数据进行自定义,有些导入可能无法完全导入,请检查一下。 - allexiusw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接