【发布时间】:2012-03-02 17:09:04
【问题描述】:
我想这是一个简单的问题,但无论这是否可能,我都无法找到明确的答案。
我有一个模型对象,它在渲染过程中被传递给我的模板。虽然我使用大多数模型字段来显示它们的值,但我发现需要将其中一些显示为表单字段(它们各自的 HTML 元素就像通过 ModelForms 呈现的那样)。此处是否可以避免使用 ModelForm 类,而只需使用模型的字段直接从模板中呈现为表单字段?
一个例子:
class MyModel(models.Model):
month = models.PositiveIntegerField(_('Month'), choices=MONTH_CHOICES)
year = models.PositiveIntegerField(_('Year'))
现在在基于上述模型示例的模板中,我想将年份显示为一个值,但将月份显示为带有选定当前值的下拉列表?
任何指针表示赞赏!
用例:
想象一个通用的 list_view ,例如您正在呈现查询集的情况。您所拥有的是每次迭代的对象,但是在列表视图中,您希望允许用户对少数对象属性执行一些快速编辑,以避免强制他们进入完全编辑模式(可能通过简单的 ajax)。
【问题讨论】:
-
为什么要避免使用
ModelForm?这是正确的工具。 -
modelfoms 列表是这里的解决方案。您可以使用
{{ form.instance }}访问模型本身 -
您将如何处理您在模板中创建的表单?
-
好的,你已经渲染了表格,接下来呢?你需要处理它,对吧?要处理表单,您需要查看。你需要一个表单对象在你的视图中。这意味着您需要创建一个表单实例,并且这里没有过度工程。
-
您是否根据我的问题、我的判断或我在此站点上的声誉点来判断我的 sed 技能? :) 不要冒犯我的朋友,我非常感谢您的所有反馈。我发帖的原因是想看看我是否遗漏了任何以通用方式完成的任务。
标签: django django-models django-forms django-templates