Django: saving form with user as foreign key

I have a problem, and I'm looking for an answer, like a week ago, not finding. I want to save the model using Django User as a foreign key, I tried to create a new user as follows:

user=User.objects.create_user(username, email, password)

And then put the whole user or user id and it won’t work like this:

studio_form.user_id=user
studio_form.user_id=user.id

And nothing happens, everything is stored in the database, user, group, but not as a user as a foreign key, the foreign key user_id is null every time, please help.

so this is my code:

Django Model:

from django.contrib.auth.models import User
class Studios(models.Model):
    user_id=models.ForeignKey(User)
    studio_name=models.CharField(max_length=250)

Django Forms:

from django import forms
from web.models import *

class studioForm(forms.ModelForm):
    class Meta:
        model = Studios
        exclude=('user_id')
        widgets = {
            'password': forms.PasswordInput(),
        }

Django View:

def studio_register(request):
    if request.method == "POST":
        studio_form=studioForm(request.POST, request.FILES)
        if studio_form.is_valid():
            studio_form.save(commit=False)
            data=request.POST
            username=data.get("user_name")
            email=data.get("email")
            password=data.get("password")
            user=User.objects.create_user(username, email, password)
            group=Group.objects.get(name='studio')
            group.user_set.add(user)
            studio_form.user_id=user.id
            studio_form.save()

Any idea?

+4
source share
2 answers

studio_form :

def studio_register(request):
    # other view code
    studio_form.user_id=user.id
    studio_form.save()

Studios, . Form , .

, :

from django.contrib.auth.models import User
class Studios(models.Model):
    user_id=models.ForeignKey(User)
    studio_name=models.CharField(max_length=250)

:

def studio_register(request):
    # other view code
    studio = Studios.objects.create(user_id=user, studio_name=name)

Studios, .

user_id User ( user.id), User model. , , user_id Studios User. , , "" ( ):

class Studios(models.Model):
        user = models.ForeignKey(User)

, studio_name, Studios model.

+3

user.groups.add(group), , ?

0

Source: https://habr.com/ru/post/1548708/


All Articles