首页 > 解决方案 > 将 Django 的管理员用户连接到模型

问题描述

假设我有两个模型:

class Member(models.Model):
    nickname = models.CharField(max_length=128)
    email = models.EmailField()
    avatar = models.ImageField(upload_to='photos/')

    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return f'Member {self.nickname}'

class Dashboard(models.Model):
    title = models.CharField(max_length=128)
    owner = models.ForeignKey(Member, on_delete=models.CASCADE)

    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

在这里,我创建了一个独特的模型来跟踪可以编辑仪表板的成员。我可以使用 Django 用户来代替,避免创建我自己的模型吗?

标签: django

解决方案


是的你可以。

只需settings.AUTH_USER_MODEL用作您的相关参考,

from django.conf import settings


class Dashboard(models.Model):
    owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    # rest of your models

注意:您也可以从上述导入内置User模型,但是如果您已经扩展了身份验证模型,则会出现错误。django.contrib.auth.models@ruddra


推荐阅读