我可以将我的客户模型与 Django 用户模型联系起来吗?

Ste*_*son 4 python django django-models

嗨,我是使用 django 的新手,现在对我的项目的模型部分有点困惑。

我需要创建一个网站,用户可以拥有他们的个人资料并发布他们想要像目录一样提供的产品,我正在考虑创建这个模型:

class Users_Types(models.Model):

    user_type = models.CharField(max_length=1)
    def __str__(self):
        return self.user_type
        return self.id_type_user

class Users(models.Model):

    users_types= models.OneToOneField('Users_Types')
    e_mail = models.EmailField(unique=True)
    password = models.TextField()
    salt = models.TextField()
    def __str__(self):
        return self.id_user
        return self.id_type_user
        return self.e_mail
        return self.password
        return self.salt

class Clients(models.Model):
    users = models.OneToOneField('Users')
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    ci = models.CharField(max_length=9)
    birth_date = models.DateField(null=True, blank=True)
    phone = models.CharField(max_length=20)
    city = models.CharField(max_length=20, default=)


class products(models.Model):

    clients = models.ForeignKey('clients')
    product = models.CharField(max_length=30)
    description = models.CharField(max_length=30)
    Category = models.CharField(max_length=30)
Run Code Online (Sandbox Code Playgroud)

但我读到 django 有它的用户模型,我不得不使用该模型而不是我的用户模型?

以及如何将 django 用户模型与我的客户模型联系起来。

我感谢您的帮助!

vis*_*ell 6

Django 确实有它的User模型,并且所有默认身份验证都是通过该模型进行的,从一开始我强烈建议您保留该默认 DjangoUser模型。

并且要将您的客户端与默认用户模型链接起来,您需要

from django.conf import settings
from django.db import models

class Client(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL)
    ...
Run Code Online (Sandbox Code Playgroud)

阅读有关使用 Django 身份验证系统的django 文档对您非常有用。

我认为您知道 PEP-8 是什么,而 django 也有类似的 pep: Coding style,它可以帮助您使代码更简洁

Django 文档也有关于引用用户模型的段落:引用用户模型