Как расширить поле в UserCreationForm в django? - PullRequest
0 голосов
/ 18 марта 2020

Я пытался добавить поле номера телефона в UserCreationForm, чтобы при регистрации пользователь давал свой номер телефона, но, к сожалению, номер телефона не сохраняется. он принимает номер телефона на странице регистрации, но не показывает номер телефона на веб-странице. Я думаю, что это не хранение.

forms.py

class myCreateForm(UserCreationForm):
ph= forms.CharField(max_length=400, required=True, label='Phone')
class Meta:
    model = User
    fields = ['first_name', 'last_name' ,'username', 'email', 'password1', 'password2','ph']

def save(self, commit=True):
    user = super(myCreateForm, self).save(commit=False)
    user.ph = self.cleaned_data["ph"]
    if commit:
        user.save()
    return user

views.py

def register(request):
form = myCreateForm()
if request.method == "POST":
    form = myCreateForm(request.POST)
    if form.is_valid():
        form.save()
        return redirect('loginPage')
return render(request , 'register.html', {'form' : form})

шаблон

{%for i in user%}
Hi {{i.first_name}}<br>
Username : {{i.username}}<br>
E-Mail : {{i.email}}<br>
Phone : {{i.ph}}<br>
{%endfor%}

но на моей веб-странице отображается все, кроме номера телефона.

Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 18 марта 2020

Вам необходимо расширить Django Модель пользователя. См. Документы .

Например, давайте создадим новую модель Profile, которая будет иметь отношение OneToOne с django user model

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    phone = models.CharField(max_length=50..)

Теперь на ваш взгляд

form = myCreateForm(request.POST)
    if form.is_valid():
        user = form.save()
        phone = form.cleaned_data.get('ph')
        Profile.objects.create(user=user,phone=ph)
        return redirect...

Теперь в шаблоне {{i.profile.phone}} выдаст результат для поля телефона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...