ホーム>source

ログインしたユーザーのユーザー名を作成者フィールド内に配置すると同時に、データベース内のユーザーのユーザー名として作成者フィールドを割り当てたいだけです。

<前>ウィズウィズ

これは休暇モデルです

<前>ウィズウィズ

これはフォームテンプレートです

<前>ウィズウィズ

著者名を除いて、ホームページにすべての休暇データを通常どおりレンダリングできます

<前>ウィズウィズ

フォームの作成者フィールドにユーザー名全体が表示されますが、ログインしているユーザーだけが必要です。

def create_vacation(request): form = creationForm(request.POST or None) vacations = Vacation.objects.all() vacations.author=request.user.username if form.is_valid(): form.save() return redirect('/vacations/all') return render(request, 'creationForm.html', {'form': form})
あなたの答え
  • 解決した方法 # 1

    現在ログインしているユーザーを取得する必要があります。次に、ユーザーを使用してフォームに初期値を入力できます。

    ウィズウィズ
    

    関連ドキュメント:

    ModelForm-初期値の提供

    django.contrib.auth.get_user

    from django.contrib.auth import get_user # ... def create_vacation(request): if request.method == 'POST': form = creationForm(request.POST) if form.is_valid(): form.save() return redirect('/vacations/all') else: # Get the currently logged-in User. user = get_user(request) # Provide User as initial data to the form form = creationForm(initial={'author': user}) return render(request, 'creationForm.html', {'form': form})

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ python - matplotlib:matshowには画像の上にグリッド線があります