Как получить пользовательские поля при регистрации? - PullRequest
0 голосов
/ 21 апреля 2019

Я использую модель пользователя и систему регистрации djnago.Я создал другую модель для пользовательской информации.Я хочу показать эти поля на этапе регистрации.Вот мои коды:

Моя модель:

    def upload_image_location(instance, filename):
        return "%s/%s" %(instance.id, filename)


    class Profile(models.Model):
        user = models.OneToOneField(User, on_delete=models.CASCADE)
        description = models.TextField(max_length=500, blank=True,verbose_name="Açıklama")
        city = models.CharField(max_length=30, blank=True,verbose_name="Vitrin Fotoğrafı")
        avatar = models.FileField(blank=True,null=True,upload_to=upload_image_location,verbose_name="Vitrin Fotoğrafı")

        def __str__(self):
            return self.user.username


    @receiver(post_save, sender=User)
    def create_user_profile(sender, instance, created, **kwargs):
        if created:
            Profile.objects.create(user=instance)'

Вот мои формы.py

    class SignUpForm(UserCreationForm):
        first_name = forms.CharField(max_length=30, required=False, help_text='İsminizi giriniz.', label="Ad")
        last_name = forms.CharField(max_length=30, required=False, help_text='Soyisminizi giriniz.', label="Soyad")
        email = forms.EmailField(max_length=254, help_text='Geçerli bir mail adresi giriniz.', label="Mail")

        class Meta:
            model = User
            fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2', )

Вот моя часть views.py:

    class SignUp(generic.CreateView):
        form_class = SignUpForm
        success_url = reverse_lazy('login')
        template_name = 'registration/signup.html'

Теперь я хочу получить город, описание и поля аватара на этапе регистрации.Как правильно это сделать?

Ответы [ 3 ]

1 голос
/ 21 апреля 2019

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

Затем вы явно установитеAUTH_USER_MODEL в вашем settings.py файле, чтобы указать на новую модель.

Более подробную информацию можно найти здесь

1 голос
/ 21 апреля 2019

Самый простой способ сделать это - перенаправить пользователя после регистрации в форму профиля, где он может обновить другие данные, в вашем случае город, описание и аватар

0 голосов
/ 21 апреля 2019

Вы можете попробовать это: -

в ур. Форм.разберитесь с prblm :)

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