DjangoはフォームのスタイルCSSを変更します

django独自のレンダリングテンプレートを使用できますが、現在のフロントエンドフレームワークがレンダリングするほど見栄えがよくないためattrs、パラメーターを使用して、コードは次のようになります。

フォームクラスを書く

まず、現在のアプリでforms.pyファイルを作成し、次のコンテンツを入力します。

from django import forms

class TaskForm(forms.Form):
    task_domain = forms.CharField(label="", widget=forms.TextInput(attrs={
    
    'class':'form-control'}), max_length=50)

2つのポイント:

  • ラベルは不要です。ラベルは空になるように制御する必要があります
  • ウィジェットによって処理されるフロントエンドによってレンダリングされるcssとして入力タグクラスを制御する

最終レンダリング効果

<input type="text" name="task_domain" class="form-control" maxlength="50" required="" id="id_task_domain">

ビュー処理

ビューファイルview.py

from django.shortcuts import render
from django.http import HttpResponseRedirect

from .forms import NameForm

def get_name(request):
    # 如果form通过POST方法发送数据
    if request.method == 'POST':
        # 接受request.POST参数构造form类的实例
        form = NameForm(request.POST)
        # 验证数据是否合法
        if form.is_valid():
            # 处理form.cleaned_data中的数据
            # ...
    # 如果是通过GET方法请求数据,返回一个空的表单
    else:
        form = NameForm()

    return render(request, 'form.html', {
    
    'form': form})

テンプレートの使用

ではDjango、次のようにテンプレート、我々は唯一の完全なHTMLページを取得するプロセスに必要があります。

<form action="/" method="post">
    {
    
    % csrf_token %}
    {
    
    {
    
     form }}
    <input type="submit" value="Submit" />
</form>

おすすめ

転載: blog.csdn.net/wy_97/article/details/104892637