我有一个具有以下代码的模型:
class PhillyCheese(models.Model):
description = models.CharField(blank=True, max_length=255)
quality = models.CharField(blank=True, max_length=255)
packing_date = models.DateField(blank=True, null=True)
shipping_date = models.DateField(blank=True, null=True)
taste = models.CharField(blank=True, max_length=255)
和表格:
class PhillyCheeseForm(forms.ModelForm):
class Meta:
model = PhillyCheese
我正在尝试将jquery datepicker应用于模型中的两个DateField。唯一的问题是,我想确切地知道它在哪个领域。修改模板不是一种选择;我有许多其他可能通过该模板呈现的形式。
有人可以告诉我如何添加自定义ID /类/名称,以便我可以使用Jquery准确识别DateFields吗?
答案 0 :(得分:7)
创建表单时,您可以将attrs
(基于字典)传递给您的特定字段,然后将其用作字段属性。
from django import forms
date = forms.DateInput(attrs={'size': 10, 'id': 'date_field',})
print date.render('date', '')
#This will produce:
#<input type="text" id="date_field" name="date" size="10" />
答案 1 :(得分:4)
您可以在Django的文档中找到您的解决方案: https://docs.djangoproject.com/en/1.8/topics/forms/modelforms/#overriding-the-default-fields
在您的情况下,您的代码将是这样的:
from django import forms
class PhillyCheeseForm(forms.ModelForm):
class Meta:
model = PhillyCheese
widgets = {
'packing_date': forms.TextInput(attrs={'id':'foo', 'name':'foo'})
'shipping_date': forms.TextInput(attrs={'id':'bar', 'name':'bar'})
}
我实际上不知道是否有办法避免在id
和name
属性中重复新的字段标识符。
编辑:
链接到Django 2.1的文档:https://docs.djangoproject.com/en/2.1/topics/forms/modelforms/#overriding-the-default-fields