我的项目名称是timecapture
这是timecapture/settings.py的相关部分
INSTALLED_APPS = [
# 'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'timecapture',
'timesheet'
]
AUTH_USER_MODEL = 'timecapture.TimeUser'
Run Code Online (Sandbox Code Playgroud)
这里是timecapture/models.py
from django.contrib.auth.models import (
BaseUserManager, AbstractBaseUser
)
from django.utils.translation import ugettext_lazy as _
from django.db import models
from django.utils import timezone
class TimeUserManager(BaseUserManager):
use_in_migrations = True
def create_user(self, email, password=None):
"""
Creates and saves a User with the given email, date of
birth and password.
"""
if not email:
raise ValueError('Users must have an email address')
user = self.model(
email=self.normalize_email(email),
) …Run Code Online (Sandbox Code Playgroud) 在我的 gen_server 中,我像这样终止它:
handle_info({'EXIT', _From, _Reason}, State) ->
{stop, partner_fled, State};
Run Code Online (Sandbox Code Playgroud)
但记录器仍然将其打印为错误
14:56:43.349 [error] gen_server <0.3290.0> terminated with reason: partner_fled
14:56:43.349 [error] CRASH REPORT Process <0.3290.0> with 0 neighbours exited with reason: partner_fled in gen_server:terminate/7 line 812
Run Code Online (Sandbox Code Playgroud)
该代码按预期工作,但我不希望记录器将其打印出来,因为它是一个优雅的终止。
顺便说一句,我正在使用 lager,但我认为删除它只会改变日志记录的格式。
每个 Erlang 进程都维护自己的私有地址空间。所有通信都是通过复制而不共享进行的(大二进制文件除外)。如果每个进程一次处理一条消息,而没有对其对象的并发访问,我不明白为什么我们需要不可变/持久的数据结构。