假设我有Profile、Post、Teacher和Student Django模型,我创建了Profile模型来共享Teacher和Student的公共字段。
*问题: 在post模型中表示创建者关系的正确方法是什么?如果我下面的代码正确,当我从post creator获取配置文件示例时,我如何识别配置文件的类型,我的意思是它是教师还是学生?**:
class Profile(models.Model):
user = models.OneToOneField(User)
.
.
class Post(models.Model):
.
creator = models.ForeignKey(Profile, on_delete=models.CASCADE)
.
class Teacher(models.Model):
.
profile = models.OneToOneField(Profile)
.
class Student(models.Model):
.
profile = models.OneToOneField(Profile)
.
字符串
3条答案
按热度按时间wmvff8tz1#
您的数据库设计和模型关系并不真正符合,首先,您需要将您的Portfile重命名为Profile,然后在自定义学生模型中,您确保您声明了所需的字段,然后添加它作为POST的外键创建者,然后为教师。您需要添加额外的权限给您的用户,以便您将教师视为管理员...因此,您可以只创建自定义用户模型,然后添加必要的权限给教师...更多的澄清我总是在线帮助。通过watsap或dm联系我08082182438
watbbzwu2#
为了区分教师和学生配置文件,可以通过组合
related_name
和hasattr
来处理:字符串
然后从post creator示例中获取配置文件类型,如下所示:
型
u0njafvf3#
字符串
在视图中,您可以这样实现该功能
创建学生档案:
型
同样,也可以为其他user_type