Python Django模型中继承类关系的创建
我正在建立一个导师和教练网站。我一直在设计使用Django模型的数据库应该是什么样子。请帮我纠正一下Python Django模型中继承类关系的创建,python,django,django-models,Python,Django,Django Models,我正在建立一个导师和教练网站。我一直在设计使用Django模型的数据库应该是什么样子。请帮我纠正一下 实体: 用户(用户名、密码、名称) 用户子类 教练(小时费率,科目) 学生() 关系: 辅导(教练用户名、导师用户名、日期) 类用户(models.Model): 用户名 以下是我实现的Django模型: class User(models.Model): username = models.CharField(primary_key=True, max_length=100
- 用户(用户名、密码、名称)
- 用户子类
- 教练(小时费率,科目)
- 学生()
- 辅导(教练用户名、导师用户名、日期) 类用户(models.Model): 用户名
class User(models.Model):
username = models.CharField(primary_key=True, max_length=100, blank=False, null=False)
password = models.CharField(max_length = 100, blank = False, null = False)
name = models.CharField(max_length = 100, blank = False, null = False)
def __str__(self):
return self.username + " " + self.name
class Coach(User):
subject = models.CharField(max_length = 50, blank = False, null = False)
hour_rate = models.FloatField(default = 0.00)
def __str__(self):
return self.username + " " + str(self.hour_rate)
class Student(User):
def __str__(self):
return self.username + " " + self.name
class tutoring(models.Model):
coausr = models.ForeignKey(User)
tutusr = models.ForeignKey(User)
date = models.DateTimeField(auto_now_add = False, auto_now = "True")
def __str__(self):
return self.coausr + " " + self.tutusr
如果我的Django模型的整个结构是错误的,或者我不打算这样做,请教我正确的方法。设置关系后,请演示如何在python shell中与之交互。谢谢。也许您应该使用django.contrib.auth.models导入用户的
。它几乎实现了整个身份验证。检查一下。Tutee
课程似乎没有必要;除了用户
之外,它不保存任何其他信息?最后,你有两个相同实体的字段是可以的。@tuliocasagrande我实现的关系有问题,它可以编译,也可以工作。正确的编写方法是什么。您需要通知不同的相关名称:coausr=models.ForeignKey(User,related\u name='coausr')
tutusr=models.ForeignKey(用户,相关的_name='tututusr')
。或者您可以使用子类:coausr=models.ForeignKey(Coach)
tutusr=models.ForeignKey(Tutee)
。来定义您的用户。通过这种方式,您可以在用户中对自己的属性使用所有身份验证的优点。