だから私は車のモデルを持っています。そして、提出されたすべての車はユーザーに割り当てられます。また、すべてのユーザーには、車を送信できる独自のダッシュボードがあります(ログインしているユーザーのみ)。
from django.db import models
from django.contrib.auth.models import User
class Car(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE,null=True)
model_car= models.CharField(max_length=200)
description = models.TextField()
car_image = models.ImageField(null=True, blank=True)
date_created = models.DateTimeField(auto_now_add=True)
これは私が車を作成するforms.pyです。そして、このフォームをフロントエンドにレンダリングします。
from django import forms
from django.forms import ModelForm
from tasks.models import Car
class CreateCarForm(ModelForm):
class Meta:
model=Car
fields='__all__'
exclude = ('user',)
Views.py
def create_car(request):
form = CreateCarForm()
if request.method=="POST":
form = CreateCarForm(request.POST,request.FILES)
if form.is_valid():
form.save()
messages.success(request,'Car was Created')
return redirect('create_car')
context={'form':form}
return render(request, 'dashboard/create_car.html',context)
これで、車のインスタンスが作成されますが、ユーザーは選択されません。私がやりたいのは、このCarインスタンスを作成することですが、userフィールドで、現在ログインしているユーザーのユーザー名を自動的に割り当てます。
どうすればこれを達成できますか?
:でラップされた.user
インスタンスのインスタンスを設定できます。Car
CreateCarForm
from django.contrib.auth.decorators import login_required
@login_required
def create_car(request):
form = CreateCarForm()
if request.method=='POST':
form = CreateCarForm(request.POST,request.FILES)
if form.is_valid():
form.instance.user = request.user
form.save()
messages.success(request,'Car was Created')
return redirect('create_car')
context={'form':form}
return render(request, 'dashboard/create_car.html', context)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加