Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django中将用户模型映射到客户模型_Python_Python 3.x_Django_Django Models - Fatal编程技术网

Python 如何在django中将用户模型映射到客户模型

Python 如何在django中将用户模型映射到客户模型,python,python-3.x,django,django-models,Python,Python 3.x,Django,Django Models,我当时正在使用Django开发一个电子商务网站,我在models.py class Customer(models.Model): user = models.OneToOneField(User, null=True, blank=True, on_delete=models.CASCADE) name = models.CharField(max_length=200, null=True) email = models.CharField(max_length=20

我当时正在使用Django开发一个电子商务网站,我在
models.py

class Customer(models.Model):
    user = models.OneToOneField(User, null=True, blank=True, on_delete=models.CASCADE)
    name = models.CharField(max_length=200, null=True)
    email = models.CharField(max_length=200)

    def __str__(self):
        return self.name
当我使用此视图在我的站点上注册新用户时:

def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username, password=raw_password)
            login(request, user)
            return redirect('store')

    else:
        form = SignUpForm()
    return render(request, 'store/signup.html', {'form': form})
用户已创建,但我收到错误
relatedObjectsDoesNotExist:用户没有客户

我知道这是因为用户模型是创建的,而不是客户,我是Django的新手,我想知道在注册时映射这两个模型的方法。

在views.py中注册用户时,您还可以根据需要创建客户模型。如果是这样,请尝试以下方法:

def signup(request):
if request.method == 'POST':
    form = SignUpForm(request.POST)
    if form.is_valid():
        form.save()
        username = form.cleaned_data.get('username')
        raw_password = form.cleaned_data.get('password1')
        user = authenticate(username=username, password=raw_password)
        Customer.objects.create(user=user,name=username,email=email) // get the email from the form
        login(request, user)
        return redirect('store')

else:
    form = SignUpForm()
return render(request, 'store/signup.html', {'form': form})

                    

还可以添加您的customer modalın管理面板并手动添加您的客户信息以供演示。

在views.py中注册用户时,您还可以根据需要创建客户modalı。如果是这样,请尝试以下方法:

def signup(request):
if request.method == 'POST':
    form = SignUpForm(request.POST)
    if form.is_valid():
        form.save()
        username = form.cleaned_data.get('username')
        raw_password = form.cleaned_data.get('password1')
        user = authenticate(username=username, password=raw_password)
        Customer.objects.create(user=user,name=username,email=email) // get the email from the form
        login(request, user)
        return redirect('store')

else:
    form = SignUpForm()
return render(request, 'store/signup.html', {'form': form})

                    

还可以添加您的客户modalın管理面板,并手动添加您的客户信息以供演示。

您从何处获得此错误?你能把代码粘贴到发生错误的地方吗?你从哪里得到这个错误的?你能把代码贴在发生的地方吗?非常感谢,它成功了。只需添加
email=form.cleaned\u data.get('email')
Customer.objects.create(user=user,name=username,email=email)
就像你提到的很多hanks一样,它很有效。只需添加
email=form.cleaned\u data.get('email')
Customer.objects.create(user=user,name=username,email=email)
,如您所述