python - Django ModelForm的插入表单也显示已有记录

标签 python django python-2.7 django-forms

我正在使用 ModelForms 生成一些用户注册表数据。当我提交表格时,确实添加了记录。但是,现有记录也以表格格式显示。我只想添加新用户。

注册 html 表单:

    <div class="container">
        <h1>Sign up</h1>
        <form method="post" action="/users/signup/">{% csrf_token %}
            <table>
                {{ formset }}     
                <tr><th><input type="submit" /></th></tr>
            </table>
        </form>
    </div>

声明 ModelForms 的函数:

def model_signup(request):
    ModelFormSet = modelformset_factory(Model)
    if request.method == 'POST':
        formset = ModelFormSet(request.POST, request.FILES)
        if formset.is_valid():
            formset.save()
            # do something.
    else:
        formset = ModelFormSet()
    return render_to_response("model_signup.html", {
        "formset": formset,
    }, context_instance=RequestContext(request))

谢谢!

最佳答案

您可以 specify a queryset创建表单集时。如果您不想显示现有记录,请使用空查询集 MyModel.objects.none()

ModelFormSet = modelformset_factory(MyModel)
if request.method == 'POST':
    formset = ModelFormSet(request.POST, request.FILES, queryset=MyModel.objects.none())
    if formset.is_valid():
        formset.save()
        # do something.
else:
    formset = ModelFormSet(queryset=MyModel.objects.none())

关于python - Django ModelForm的插入表单也显示已有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19748233/

相关文章:

python - 将声音文件作为 NumPy 数组导入 Python(audiolab 的替代品)

python - Qt QSystemTrayIcon 更改菜单项

python - python包的数据缓存

python - 如何通过一个请求创建多个资源Django Rest Framework?

python - Django基于变量(str)的动态过滤器

class - 如何从 Python 2.7 中的 set() 中删除重复的类对象?

python - 如何在 anaconda 上更新 spyder

python - 在其他模块中时,类型别名中的 mypy 类前向引用会出错

python - 如何继承异常来创建更具体的错误?

django - 通过表在 modelSerializer 中创建多对多创建/更新