[英]Django Models. User - Marks
下午好。 我试图找出 Django 培训站点示例中的模型: 问题? 是否可以在 model 中做一个“过滤器”,以便成员表中具有“老师”角色的用户来到 T_Member? 或者在 model 级别不可能做到这一点:第二个问题? 我是否正确定义了这些字段:) 感谢
有一个 class “用户”
student = 'ST'
parent = 'PA'
teacher = 'TE'
SCHOOL_CHOICES = [
(student, 'Student'),
(parent, 'Parent'),
(teacher, 'Teacher'),
]
user_id = models.AutoField(verbose_name='User ID', auto_created=True, primary_key=True)
username = models.CharField(verbose_name='username', max_length=255, blank=True)
dob = models.DateField(verbose_name='date of birthday', blank=False, default=date.today)
role = models.CharField(max_length=2, choices=SCHOOL_CHOICES, default=student )
和 class 标记:
class Marks(models.Model):
mark_id = models.AutoField(verbose_name='User ID', auto_created=True, primary_key=True)
d_of_publ = models.DateField(verbose_name='Дата оценивания', blank=False, default=date.today)
subject = models.ManyToManyField(Subject, verbose_name='Subjects')
T_Member = models.ManyToManyField(Members, verbose_name='Teachers')
S_Member = models.ManyToManyField(Members, verbose_name='Students')
mark = models.IntegerField(verbose_name='Marks', blank=False, default=2)
那么您实际上可以做的是覆盖用户 model 的保存方法,每当创建新用户时,您只需做任何您想做的事情。 我个人不推荐信号,但这也是您的另一种选择。
并使用覆盖保存方法:
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
if self._state.adding:
# DO WHATEVER YOU WANT HERE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.