我想使用Django Rest Framework构建一个课程点赞收藏系统,学生可以点赞或是收藏课程,课程可以查看点赞或是收藏数量。请你根据上述功能在model.py中构建多个相应的模型
时间: 2024-03-12 15:42:57 浏览: 14
好的,根据您的要求,我可以为您构建以下模型:
```python
from django.db import models
from django.contrib.auth.models import User
class Course(models.Model):
name = models.CharField(max_length=100)
description = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
class Like(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
course = models.ForeignKey(Course, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
unique_together = ('user', 'course')
class Favorite(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
course = models.ForeignKey(Course, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
unique_together = ('user', 'course')
```
上述代码中,我们定义了三个模型,分别是 `Course`、`Like` 和 `Favorite`。
`Course` 模型代表课程,包含课程名称、课程描述以及创建时间和更新时间。
`Like` 模型代表点赞,包含用户、课程以及创建时间。我们使用 `unique_together` 定义联合唯一键,确保一个用户只能对一个课程点赞一次。
`Favorite` 模型代表收藏,包含用户、课程以及创建时间。同样使用 `unique_together` 定义联合唯一键,确保一个用户只能收藏一个课程一次。
您可以将上述代码添加到您的 Django 项目的 `models.py` 文件中,并运行 `python manage.py makemigrations` 和 `python manage.py migrate` 命令来创建数据库表。