登録/ログイン操作を含むwebappを作成しようとしています。ログインはうまくいっていますが、登録フォームはイライラしています。django - 登録フォーム情報をユーザープロフィールモデルにリンクする
私はUserCreationFormを継承するクラス登録フォームを持っています。ユーザーは作成時に管理ページに作成され表示されますが、問題は管理ページのUserProfileモデルで表示されません。それは情報をリンクするものではなく、リンクする方法を見つけることができませんでした。ここで
は、登録フォームである:ここで
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
class RegistrationForm(UserCreationForm):
email = forms.EmailField(required=True)
city = forms.CharField(required=False)
country = forms.CharField(required=True)
first_name = forms.CharField(required=True)
last_name = forms.CharField(required=True)
username = forms.CharField(required=True)
class Meta:
model = User
fields = (
'username',
'first_name',
'last_name',
'country',
'city',
'email'
)
def save(self, commit=True):
user = super(RegistrationForm, self).save(commit=False)
#user.first_name = self.cleaned_data['first_name']
if commit:
user.save()
return user
は私のモデルは以下のとおりです。
class UserProfile(models.Model):
user = models.OneToOneField(User,
on_delete=models.CASCADE
)
username = models.TextField(max_length=30, default="")
first_name = models.TextField(max_length=30, default="")
last_name = models.TextField(max_length=30, default="")
country = models.TextField(max_length=30, default="Which country are you from?")
city = models.TextField(max_length=30, default="Which city are you from?")
class ColorChoice(models.Model):
user = models.ForeignKey(
'UserProfile',
on_delete=models.CASCADE
)
color1 = models.IntegerField()
color2 = models.IntegerField()
color3 = models.IntegerField()
color4 = models.IntegerField()
color5 = models.IntegerField()
と登録を行い、私のview.py:
def register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
form.save()
return redirect('color')
else:
form = RegistrationForm()
args = {'form': form}
return render(request, 'account/create_new.html', args)
私は 'UserProfile'モデルを参照してくださいいけません。 'UserModel' =' UserProfile'ですか?そうであれば、ユーザーの作成時にオブジェクトを保存しません。 –
@SachinKukreja申し訳ありませんが、私はUserModelモデルを意味しています。 –