Возможна ли работа Django CRUD без использования модельных форм?

#django

#django

Вопрос:

Я создаю приложение для регистрации в django, где я хочу обновить информацию о пользователе после входа в систему. Я использую формы начальной загрузки. Возможна ли работа Django CRUD без использования модельных форм?

Я создал пользователя следующим образом:

 def handleRegister(request):
    if request.method == 'POST':
        username = request.POST['username']
        fname = request.POST['fname']
        lname = request.POST['lname']
        email = request.POST['email']
        pass1 = request.POST['pass1']
        pass2 = request.POST['pass2']

        # check erronous inputs
        if len(username) > 10:
            messages.error(request, "Username should be less than 10 chracters")
            return redirect('/')
        if pass1 != pass2:
            messages.error(request, "Passwords do not match")
            return redirect('/')
        if not username.isalnum():
            messages.error(request, "Username should be alphanumeric")
            return redirect('/')

        # creating user here
        myuser = User.objects.create_user(username, email, pass1) #creating user with the help of User(you have to import it. from django.contrib.auth.models import User)
        myuser.first_name = fname
        myuser.last_name = lname
        myuser.save() # saving created user
        messages.success(request, "Your account has been created sucessfully")
        return redirect('/')
    else:
        return HttpResponse("404 not found")
  

есть ли какой-либо метод, подобный приведенному выше, где я могу обновить информацию о пользователе?

Комментарии:

1. Тот факт, что вы используете загрузочную форму, не означает, что вы не можете использовать ModelForm . Вам не нужно отображать форму в HTML. A ModelForm , выполняет несколько действий: проверяет ввод, сохраняет / обновляет объект в базе данных и отображает форму, но вы можете выбрать только подмножество задач.

2. использование форм django для меня очень сложно

3. вы можете обновить пользователя, выполнив Profile.objects.get(user=request.user), определить пользователя с отношением onetoone в модели профиля. Таким образом, вы можете добавить дополнительную информацию о пользователе

Ответ №1:

Да, это возможно в Django.

Если вам нужно знать (или вы можете использовать имя пользователя, которое вы получили из поля ввода), обязательно используйте первичный ключ всегда:

 UPDATED_fname = "user fname"
UPDATED_lname = "user lname"


myuser = myuser.objects.get(id=YOUR_USER_ID) #get with id
   **OR**
myuser = myuser.objects.get(username=YOUR_username) #get with username
myuser.first_name = UPDATED_fname #update field
myuser.last_name = UPDATED_lname #update field

myuser.save() #User with that username will be updated