在 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 个答案是:

  1. Toss/copy Django 的用户模型和自己制作(难)
  2. 通过创建新模型并将其关联到用户模型来扩展用户模型(简单)

我通常选择选项 #2,因为这样您就不必重新配置身份验证系统。这是一个关于如何操作的很好的教程:simpleisbetterthancomplex