如何为Djang的用户创建特殊字段

2024-05-16 10:25:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Django的新手,我想创建一个应用程序,艺人可以发布他们的歌曲和专辑。现在我希望艺人有一个不同于普通用户的注册页面。我希望艺术家能够添加他们的肖像,流派,以及所有这些。有没有办法将这些字段添加到用户模型中?我见过一些关于这个的问题,但我不认为我真的理解答案。你知道吗


Tags: django答案用户模型应用程序页面歌曲艺术家
1条回答
网友
1楼 · 发布于 2024-05-16 10:25:48

实现这一目标的基本方法有两种:

<强>1。创建一个新的模型Artist,其中包含一个指向django用户模型的OneToOneField。这很可能就是你想要的。例如:

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)

<强>2。指定从AbstractBaseUser继承的自定义用户模型。仅当您要存储与身份验证本身相关的附加信息时,才建议使用此选项。

我建议您仔细阅读以下文档: https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#extending-the-existing-user-model

要创建自定义注册页,您需要使用自定义模板创建自己的FormView,例如使用django内置的UserCreationForm和/或ModelForm。你可以用任何你需要的字段来扩展它。根据您的需要,有几种方法可以实现这一点。你知道吗

相关问题 更多 >