from django.contrib.auth.models import User
class Artist(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
genres = models.ManyToManyField('myapp.Genre', related_name='artists')
class Portrait(models.Model):
artist = models.ForeignKey('myapp.Artist', related_name='portraits')
class Genre(models.Model):
name = models.CharField(max_length=30)
实现这一目标的基本方法有两种:
<强>1。创建一个新的模型
Artist
,其中包含一个指向django用户模型的OneToOneField。这很可能就是你想要的。例如:<强>2。指定从
AbstractBaseUser
继承的自定义用户模型。仅当您要存储与身份验证本身相关的附加信息时,才建议使用此选项。我建议您仔细阅读以下文档: https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#extending-the-existing-user-model
要创建自定义注册页,您需要使用自定义模板创建自己的
FormView
,例如使用django内置的UserCreationForm
和/或ModelForm
。你可以用任何你需要的字段来扩展它。根据您的需要,有几种方法可以实现这一点。你知道吗相关问题 更多 >
编程相关推荐