【发布时间】:2014-01-16 01:34:33
【问题描述】:
我有这个模型:
class DistList(models.Model):
name = models.CharField(max_length=200, unique=True)
description = models.TextField(blank=True, null=True)
is_private = models.BooleanField(default=True)
members = models.ManyToManyField(User, blank=True, null=True)
我有这个 ModelForm(使用清晰的表单)
class DistListForm(ModelForm):
class Meta:
model = DistList
fields = ['name', 'description', 'members', 'is_private']
def __init__(self, *args, **kwargs):
super(DistListForm, self).__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.add_input(Submit('submit', 'Submit'))
self.helper.layout = Layout(
Field('name', css_class='form-control'),
Field('description', css_class='form-control'),
Field('members',css_class='form-control'),
)
self.fields['is_private'].label = 'Private Distribution List'
我想做的是将渲染的多选更改为 github 用来将用户添加到 repos 的东西。 ul下面有一个输入框,用户输入用户名,点击add,新用户就会动态添加为ul上的li。我对它的 javascript/jquery 方面很满意,但似乎 ModelForms 不应该像这样修改。
我想我的问题是更具概念性或最佳实践。如果我想如此大幅度地改变 ModelForm 的行为,最好只制作一个 Form 并以这种方式处理它?完成此任务的“Djangoest”方式是什么?
【问题讨论】:
标签: django django-crispy-forms