0
DjangoのUserモデルをいくつかの新しいフィールドで拡張したいと考えています。その後、ユーザーモデルからユーザー名+パスワードを登録できる1つのフォームを作成し、カスタムモデルのフィールドも作成する必要があります。DjangoのPythonの処理2つの形式のモデル
これは、カスタム・ユーザー・フィールドのための私のモデルである:
class Gebruiker(models.Model):
id = models.OneToOneField(User, primary_key=True)
voornaam = models.CharField(max_length=100)
achternaam = models.CharField(max_length=100)
email = models.CharField(max_length=300)
gb_datum = models.DateField()
plaats = models.CharField(max_length=52)
postcode = models.CharField(max_length=6)
huisnummer = models.IntegerField()
nfid = models.IntegerField()
hn_toevoeging = models.CharField(max_length=3, blank=True)
def __str__(self):
return self.voornaam + self.achternaam
そしてこれは、フォームのための私の見解です。このフォームでは、残りのフォームを維持しながらGebruikerモデルのフィールドを追加したいと思っています。これどうやってするの?
class UserFormView(View):
form_class = UserForm
template_name = 'home/registration_form.html'
# display blank form
def get(self, request):
form = self.form_class(None)
# form = self.form_class(None)
return render(request, self.template_name, {'form': form})
# process form data
def post(self, request):
form = self.form_class(request.POST)
if form.is_valid():
user = form.save(commit=False)
#cleaned/normalized data
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user.set_password(password)
user.save()
#returns User objects if credentials are correct
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return redirect('home:index')
return render(request, self.template_name, {'form': form})
マイforms.py:
from django.contrib.auth.models import User
from django import forms
from .models import Gebruiker
class UserForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)
class Meta:
model = User
fields = ['username', 'email', 'password']
class GebruikerForm(forms.ModelForm):
class Meta:
model = Gebruiker
fields = ('voornaam', 'achternaam')
私はどのような変更を適用する必要がありますか少し詳しくお聞かせください。私はDjangoの騒ぎです、返事のおかげでtho –