大家好,我是 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)
但是我读到过 django 有它的用户模型,我不得不使用那个模型而不是我的用户模型?
以及我如何将 Django 用户模型与我的客户模型联系起来。
感谢您的帮助!
最佳答案
Django 确实有它的 User
模型,所有默认身份验证都是通过该模型进行的,从一开始我就强烈建议您保留默认的 Django User
模型.
并且为了将您的客户端与您需要的默认用户模型链接起来
from django.conf import settings
from django.db import models
class Client(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL)
...
在 Using the Django authentication system 上阅读 Django 文档会对你非常有用。
我认为您知道 PEP-8 是什么,django 也有类似的 pep:Coding style ,它将帮助您使代码更简洁。
Django 文档也有关于引用用户模型的段落:Referencing the User model
关于python - 我可以将我的客户模型与 Django 用户模型链接起来吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44342987/