【发布时间】:2011-01-15 23:15:32
【问题描述】:
我有以下模型,它在 Person 和“Eprint”出版物之间形成多对多关系。每个人的个人资料页面都会显示通过此表引用的电子印记,但前提是 show=True,并且按“订单”字段的数字顺序:
class UsersEprint(models.Model):
person = models.ForeignKey(Person)
eprint = models.ForeignKey(emodels.Eprint) # this has a .title field
show = models.BooleanField(default=True)
order = models.IntegerField(default=0)
现在这一切都可以通过管理员进行管理,但我想要一个用户友好的表单进入网站的用户个人资料页面。
理想情况下,我想要一个表格,其中包含每个人的电子印刷品的一行,给出:电子印刷品标题(无法编辑)、“显示”复选框和“订单”数字字段。 “删除”复选框也很有用。
modelformsets 的默认方法为列出所有 eprint 的 eprint 提供了一个下拉选择器 - 这是因为表单不知道我不想编辑它。我已经尝试了各种方法来覆盖字段和小部件,但这一切似乎有点笨拙,而且我最终还是要在模板中逐行渲染表单,看起来。
下一个复杂之处在于,我可以使用 JavaScript 系统,而不是让用户输入数字来重新排列表格行,或者拖放行或向上/向下移动箭头。用户提交表单时,获取新订单。
我的问题是,在什么时候我会超出 django 的表单处理范围?我应该放弃 import django.forms 并自己管理吗?或者即使是最尴尬的形式,那里仍然有有用的部分?
【问题讨论】:
标签: django forms django-forms