私のプロジェクトでは、ユーザーがサインアップするとすぐに、この情報を入力する必要があるビューを更新するようにリダイレクトされます。ユーザーはサインアップ後も自動的にログインしていますので、編集することはできません。Djangoフォームの自動入力ユーザー
models.py
class Userpro(models.Model):
user = models.OneToOneField(User)
dob = models.DateField(default=datetime.date.today)
country = models.CharField(max_length=50, default='')
qualification = models.CharField(max_length=10, choices=CHO,
default='No')
university = models.CharField(max_length=100, default='')
location = models.CharField(max_length=100, default='')
def __str__(self):
return str(self.user)
forms.py
class UserProForm(forms.ModelForm):
class Meta:
model = Userpro
fields = '__all__'
views.py
def update(request):
if request.method == 'POST':
form = UserProForm(request.POST or None)
if form.is_valid():
form.save()
return redirect('/')
else:
redirect('/')
else:
form = UserProForm()
return render(request, 'app/update.html', {'form': form})
すべての必要なライブラリがインポートされます。
編集可能にしたくない場合は、単にフォーム(フィールド)を表示しないでください。 – hansTheFranz
@hansTheFranzはい、あなたは正しいですが、私はそれが現在のユーザーを見て自動入力されるようにしたいと思います。 –