以前,我一直在使用默认的 Django 用户模型,并且在用户注册时将用户添加到特定的用户组,在 view.py 中使用以下代码没有问题:
user.save()
user.groups.add(Group.objects.get(name='customers'))
但是,我现在已更改为自定义用户模型,因此我可以删除注册表中的“用户名”字段,现在此代码不再有效。当新用户尝试注册时会抛出此错误消息:
“用户”对象没有属性“组”
我已经搜索过但找不到这个问题的答案。我对使用 Django 进行后端工作非常陌生,因此请在您的答案中非常具有描述性(即我需要将您建议的代码放在哪里,models.py/views.py/forms.py 等)。任何帮助将非常感激!
我的模型.py:
from django.db import models
from django.contrib.auth.models import (
AbstractBaseUser, BaseUserManager
)
class UserManager(BaseUserManager):
def create_user(self, email, first_name, last_name, password=None, is_staff=False, is_admin=False):
if not email:
raise ValueError("Users must enter an email")
if not password:
raise ValueError("Users must enter a password")
if not first_name:
raise ValueError("Users must enter their first name")
if not last_name:
raise ValueError("Users must enter their last name")
user_obj = self.model(
email = self.normalize_email(email),
first_name …Run Code Online (Sandbox Code Playgroud) 我对 Django 和一般的 Web 开发比较陌生。
我在尝试着
pip install mysqlclient
Run Code Online (Sandbox Code Playgroud)
在我的
virtualenv -p python3
Run Code Online (Sandbox Code Playgroud)
将 Django 2.0 连接到 mySQL。但是,我收到此错误:
Collecting mysqlclient
Using cached mysqlclient-1.3.12.tar.gz
Complete output from command python setup.py egg_info:
/bin/sh: mysql_config: command not found
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/setup.py", line 17, in <module>
metadata, options = get_config()
File "/private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/setup_posix.py", line 44, in get_config
libs = mysql_config("libs_r")
File "/private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/setup_posix.py", line 26, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
OSError: mysql_config not …Run Code Online (Sandbox Code Playgroud)