在 Django 2.1 中创建一个与现有模型关联的用户
create a user in Django 2.1 that is associated with an existing model
在我的 models.py
文件中,我有以下代码 ->
from django.db import models
class Blogger(models.Model):
username = models.CharField(max_length=20)
email = models.EmailField()
first_name = models.CharField(max_length=20)
last_name = models.CharField(max_length=20)
password = models.CharField(max_length=30, default='')
我想将 Blogger 模型与用户相关联,并在提交表单时创建用户。这是 forms.py
文件 ->
from django import forms
from blog.models import Blogger
class BloggerForm(models.ModelForm):
class Meta:
model = Blogger
fields = ['username', 'email', 'first_name', 'last_name', 'password']
这里是 views.py
->
class BlogView(FormView):
template_name = 'blogform.html'
form_class = BloggerForm
success_url = 'blog/'
如何在提交此表单时创建新用户?
Blogger的所有字段都已经存在于User模型中,其实你根本不需要这个Blogger模型,直接使用User模型即可。
有几种方法可以做到这一点,但基本上一般的 2 个答案是:
- Toss/copy Django 的用户模型和自己制作(难)
- 通过创建新模型并将其关联到用户模型来扩展用户模型(简单)
我通常选择选项 #2,因为这样您就不必重新配置身份验证系统。这是一个关于如何操作的很好的教程:simpleisbetterthancomplex
在我的 models.py
文件中,我有以下代码 ->
from django.db import models
class Blogger(models.Model):
username = models.CharField(max_length=20)
email = models.EmailField()
first_name = models.CharField(max_length=20)
last_name = models.CharField(max_length=20)
password = models.CharField(max_length=30, default='')
我想将 Blogger 模型与用户相关联,并在提交表单时创建用户。这是 forms.py
文件 ->
from django import forms
from blog.models import Blogger
class BloggerForm(models.ModelForm):
class Meta:
model = Blogger
fields = ['username', 'email', 'first_name', 'last_name', 'password']
这里是 views.py
->
class BlogView(FormView):
template_name = 'blogform.html'
form_class = BloggerForm
success_url = 'blog/'
如何在提交此表单时创建新用户?
Blogger的所有字段都已经存在于User模型中,其实你根本不需要这个Blogger模型,直接使用User模型即可。
有几种方法可以做到这一点,但基本上一般的 2 个答案是:
- Toss/copy Django 的用户模型和自己制作(难)
- 通过创建新模型并将其关联到用户模型来扩展用户模型(简单)
我通常选择选项 #2,因为这样您就不必重新配置身份验证系统。这是一个关于如何操作的很好的教程:simpleisbetterthancomplex