У меня есть модель с именем Personnel
, которую я использую в качестве модели профиля для модели User
. Модераторы на моем сайте могут создавать и свои аккаунты, но все поля профиля должны быть заполнены. Вот моя модель
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"
)
Мне нужно реализовать следующее.
Метод create
в модели Personnel
, поэтому, когда кто-то вызывает метод Personnel.objects.create(username, email, phone, address)
, он создает нового пользователя в модели User
, а также сохраняет поля профиля в модели Personnel
. Для этого мне понадобится форма для обработки запроса, но эта форма должна проверять поля модели Personnel
и модели User
.
Метод delete
на модели Personnel
, поэтому, когда кто-то вызывает метод Personnel.objects.delete(username)
, он удаляет профиль из модели Personnel
и пользователя из модели 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()
Большое спасибо.