Я хочу добавить разрешения для пользователя в Django? - PullRequest
2 голосов
/ 02 ноября 2019

Я хочу добавить раздел профиля пользователя, например, superuser и simple_user, чтобы я мог добавить разрешения

Но когда я отправляю свою регистрационную форму, я получаю эту ошибку:

AttributeError at /register/
'User' object has no attribute 'register'

Как исправитьИ сохранить имя профиля пользователя?

Вот мой Views.py

from django.shortcuts import render , get_object_or_404,redirect
from django.utils import timezone
from blog.models import *
from blog.forms import *
from django.contrib.auth.decorators import login_required
from django.urls import reverse_lazy
from django.contrib.auth.models import User
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import (TemplateView,ListView,
                                    DetailView,CreateView,
                                    UpdateView,DeleteView)
# Create your views here.

def user_register(request):
    if request.method == "POST":
        reg = register(request.POST or None)
        if reg.is_valid():
            user = reg.save()
            user.profile = "simple_user"
            user.set_password(user.password)
            user.save()
        else:
            print(register.errors)
    else:
        reg = register()

    return render(request,"registration/register.html",{'reg':reg})

Вот мой Models.py

class register(models.Model):
    user = models.OneToOneField(User,on_delete="Cascade", related_name="profile")

Вот мой Forms.py

class register(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput(attrs={'class':'input-field'}))
    class Meta():
        model = User
        fields = ('username','email','password')

Вот изображение ошибки:

enter image description here

Любая помощь приветствуется!

1 Ответ

1 голос
/ 02 ноября 2019

попробуйте

user = reg.save()
p1 = register(user=user, #other colums if have)  # register model
p1.save()
# user.profile = "simple_user"
user.set_password(user.password)
user.save()

надеюсь, это поможет

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