如何在django模型中设置class为列



有一个模型,并使用它来创建模型表单集。但我看到,formset给出id到每个列,如形式0将有id_0_exp_date然后id_1_exp_date等,但我正在寻找如果有一种方法来设置类的列,所以所有的exp_date格式集有相同的类。我想要这种行为,所以我可以在这些查询上轻松指定jquery和css。我在文档中找不到这个,但我觉得应该有一种方法来做到这一点…

models.py:

class Expenditure(models.Model):
    exp_date = models.DateField("Expenditure_Date")
    description = models.CharField(max_length=500)
    amount = models.FloatField(default=0)
    currency = models.CharField(max_length=15,default="USD",editable=True)
    class Meta:
        unique_together = ('exp_date', 'description',)
    def __unicode__(self):
        return self.description

forms.py

class ExpenditureForm(forms.ModelForm):
    exp_date = forms.DateField(widget=AdminDateWidget)
    description = forms.CharField(max_length=500)
    amount = forms.FloatField(initial=0)
    currency = forms.CharField(widget=forms.HiddenInput(), initial="USD")
"""
def __init__(self, *args, **kwargs):
    super(ExpenditureForm, self).__init__(*args, **kwargs)
    if self.instance.id:
        self.fields['currency'].widget.attrs['readonly'] = True
"""
# An inline class to provide additional information on the form.
    class Meta:
        # Provide an association between the ModelForm and a model
        model = Expenditure

Thanks in advance

基本上我想使货币字段只读,但似乎它不工作,由于一些问题,或者可能是我做错了:

我试了什么:1. currency = forms.CharField(widget=forms.HiddenInput(attrs={'class':'currencyClass'}), initial="USD")2. self.fields .widget"货币"。attrs['readonly'] = True

您可以在窗体中指定小部件的属性:

class ExpenditureForm(forms.ModelForm):
   exp_date = forms.DateField(widget=AdminDateWidget(attrs={'class':'nameOfYourClass'}))

在这里查看完整的文档:https://docs.djangoproject.com/en/dev/ref/forms/widgets/

最新更新