0

我已经使用 RTFM 大概三周了,但我不知道该怎么做。如果我在这方面做得很好,那么我保证我会写一本 Django for Dummies 书,文档是难以理解的!

我有一个简单的笔记应用程序,它有一个索引页面,显示数据库中每个笔记的标题。我只希望列表中的每个项目都有一个复选框,以便您可以选择一个或多个注释,然后按删除按钮,重定向到“您确定要删除...“x、y 和 z”注释吗?页面,带有确认或拒绝。然后回到索引列表。就像在管理应用程序中一样。

我已经推断出我应该需要一个在表格中布置的模型表单作为每个对象的标题,并且它的复选框应该构成一个单独的表单。

我尝试了很多方法。最新的看起来是这样的。它没有抛出任何错误(我在 forms.py 函数中设置了一个小部件属性,但它不喜欢那样。我把它拿出来只是想看看它是否会显示一些东西。)但它没有显示任何东西全部。我也认为 select_note_function 应该是一个类。我能找到的所有文档都解释了 CharFields 和字符串输入。我找不到一个完整的例子来说明如何让小部件控制数据库。

表格.py:

from django import forms
from django.forms.models import modelformset_factory
from django.forms.widgets import CheckboxInput
from models import Note

def select_note_formset():
    SelectNote = modelformset_factory(Note)
    Form = modelformset_factory(
        Note,
        form=SelectNote,
        fields='title',

)

模型.py:

def selection_index(request):
form = select_note_formset()
if request.method == 'POST':
    formset = form(request.POST)
    if formsest.is_valid():
        pass

else:
    formset=form
return render_to_response('select_index.html', {'formset':formset})

模板:

<form method="post" action="">
  {{ formset.management_form }}
  <table>
    {% for form in formset %}
    {{ form }}
    {% endfor %}
  </table>
</form>

据我所知,我可能会在完全错误的树上吠叫。如果有人能把这个拼出来,我将非常感激!

4

1 回答 1

1

我对此有一个要点,我上周才为自己弄清楚:

https://gist.github.com/bjb/5717314

简而言之:为模型创建一个新的字段类型,其中包含模型 ID 的隐藏输入并验证完整模型,将其放入您的表单中,并制作这些表单的表单集。

在我自己寻找解决方案的过程中,人们告诉我使用 CheckboxSelectMultiple,但我不喜欢这条路线,因为我不得不将每个模型描述放入一个字符串中。我想将模型属性列为列,并且(我还没有尝试过)可选地在每个模型之后显示一些相关模型。所以我想要比 CheckboxSelectMultiple 更多地控制显示。

一两年后,您就掌握了文档的窍门;-)。另外,不要害怕阅读 django 的源代码。

于 2013-07-01T02:38:08.997 回答