在Django 2.1中创建与现有模型关联的用户

时间:2018-10-08 20:42:46

标签: django python-3.x django-forms django-authentication django-users

在我的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/'

如何在提交此表单时创建新用户?

2 个答案:

答案 0 :(得分:0)

Blogger中的所有字段都已经存在于User模型中,实际上您根本不需要此Blogger模型,只需直接使用User模型即可。

答案 1 :(得分:0)

您可以通过多种方式执行此操作,但基本上,一般的2个答案是:

  1. 折腾/复制Django的用户模型并制作自己的(困难的)
  2. 通过创建新模型并将其与用户模型相关联(轻松)来扩展用户模型

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