关于Model引入其他Model数据
在Model中引入其他Model数据时,要将import语句写在方法之中或类中,
不可直接在Model页面直接引入,否则会造成其他Model与Model间的循环引用
def unread_nums(self):
#获取未读消息的数量
from operation.models import UserMessage
为防止循环引用,在model设计时,类似:
用户评论课程功能
class CourseComments(models.Model): "课程评论" user = models.ForeignKey(UserProfile, verbose_name=u"用户") course = models.ForeignKey(Course, verbose_name=u"课程") comments = models.CharField(max_length=200, verbose_name=u"评论") add_time = models.DateTimeField(default=datetime.now, verbose_name=u"添加时间") class Meta: verbose_name = u"课程评论" verbose_name_plural = verbose_name
用户搜藏课程或机构或教师功能
class UserFavorite(models.Model): user = models.ForeignKey(UserProfile, verbose_name=u"用户") fav_id = models.IntegerField(default=0, verbose_name=u"数据id") add_time = models.DateTimeField(default=datetime.now, verbose_name=u"添加时间") fav_type = models.IntegerField(choices=((1, u"课程"), (2, u"课程机构"), (3, u"讲师")), default=1, verbose_name=u"收藏类型") class Meta: verbose_name = u"用户收藏" verbose_name_plural = verbose_name
用户选课功能
class UserCourse(models.Model): user = models.ForeignKey(UserProfile, verbose_name=u"用户") course = models.ForeignKey(Course, verbose_name=u"课程") add_time = models.DateTimeField(default=datetime.now, verbose_name=u"添加时间") class Meta: verbose_name = u"用户课程" verbose_name_plural = verbose_name
以上功能可单独设计在一个model内,避免循环model引用