Python 用于创建和删除用户和配置文件的用户配置文件管理器
我有一个名为Python 用于创建和删除用户和配置文件的用户配置文件管理器,python,django,authentication,django-contrib,Python,Django,Authentication,Django Contrib,我有一个名为personal的模型,我正在使用它作为用户模型的配置文件模型。我的网站上的版主可以创建和他们自己的帐户,但所有的个人资料字段都应该填写。这是我的模型 class Personnel(models.Model): """ Model for storing the personnel information """ user = models.OneToOneField( User ) phone = models.Ch
personal
的模型,我正在使用它作为用户
模型的配置文件模型。我的网站上的版主可以创建和他们自己的帐户,但所有的个人资料字段都应该填写。这是我的模型
class Personnel(models.Model):
"""
Model for storing the personnel information
"""
user = models.OneToOneField(
User
)
phone = models.CharField(
null=False, max_length=50, verbose_name="Phone"
)
address = models.CharField(
null=True, max_length=500, verbose_name="Address"
)
我需要实现以下内容
在人员
模型上的创建
方法,以便当有人调用方法人员.objects.create(用户名、电子邮件、电话、地址)
时,它在用户
模型中创建新用户,并在人员
模型中存储配置文件字段。我需要一个表单来处理此请求,但此表单应验证人员
模型和用户
模型的字段
personal
模型上的delete
方法,这样当有人调用方法personal.objects.delete(username)
时,它会从personal
模型中删除配置文件,从user
模型中删除用户。我想我不需要这个表格
有谁能告诉我怎样做表格和经理部分吗。以下是我目前掌握的情况:
表格:
?
经理:
from django.db import models
from django.contrib.auth.models import User
class Personnel(models.Manager):
"""
This is the manager for the Personnel model. It contains the logic for
creating a new personnel which also creates a new User.
"""
def create(self, username, email, phone, address):
"""
Creates a new personnel
"""
pass
def delete(self, username):
"""
Deletes a personnel
"""
super(Personnel, self).delete()
非常感谢。向
personal.save()
和personal.delete()
添加方法来完成这项工作可能更容易
Django调用personals.save(),可以创建缺少的用户和配置文件
“覆盖删除”侧栏可能不相关,具体取决于您的应用程序。大容量删除非常罕见,而且很容易进行大容量删除后清理。或者单独删除,而不是批量删除
class PersonnelManager(models.Manager):
def create(self, username, email, phone, address, **kwargs):
user = User.objects.get_or_create(username=username, email=email)
return super(PersonnelManager, self).create(user=user, phone=phone, address=address, **kwargs)
class Personnel(models.Model):
...
objects = PersonnelManager()
删除应该在级联过程中自行处理。嗨,克里斯。谢谢你的回答。你能告诉我怎样填写表格吗。我希望有一个通用表单来验证我的
人员
模式和用户
模型。User
表单位于django.contrib.auth.forms.UserCreationForm
。我需要将代码复制粘贴到我的自定义表单中吗?