小编fra*_*nro的帖子

django-crispy-forms 的替代品

我正在 django 2.1 中开发一个应用程序并使用 bootstrap 4,它需要一个用户注册表格。在我看到的大多数示例中,都显示了单列表单的示例,这对于字段很少的表单来说已经足够了,但是对于更复杂的表单来说,它会很难看,因为您必须滚动浏览字段的数量。我想为此设计一个这种类型的服务器端形式

用网格系统创建的表格

调查了一下我发现本教程Advanced Form Rendering with Django Crispy Forms,其中使用了 Django Crispy Forms,您将获得所需的表单。但是我不想使用它,所以尝试手动完成并完成此操作。我认为它可以改进一点,因为它不是那么干净,但是它是达到与使用 Django Crispy Forms 相同的结果的替代方法。我认为这可以使用 ajax 来完成,但到目前为止我从未使用过它。他还会问自己,如果有人已经这样做了,为什么要把这件事复杂化,这是一种无需任何魔法即可了解一切如何运作的方法。

视图.py

def sign_up(request):
if 'code_user' in request.session:
    return redirect('home')
elif request.method == 'POST':
    form = SignupForm(request.POST)
    if form.is_valid():
        user = form.save()
        request.session['code_user'] = user.code
        request.session['username'] = user.username
        return redirect('home')
    else:
        for field in form:
            if field.errors:
                form.fields[field.name].widget.attrs['class'] = 'form-control is-invalid'
        return render(request, 'blog/signup.html', {'form': form})

else:
    form = SignupForm()
    return render(request, 'blog/signup.html', {'form': form}) …
Run Code Online (Sandbox Code Playgroud)

python django django-forms bootstrap-4

5
推荐指数
1
解决办法
2122
查看次数

标签 统计

bootstrap-4 ×1

django ×1

django-forms ×1

python ×1