我是django的新手,正试图为一个类似youtube的网站创建模型,我试图创建一个用户有记录的模型。
1)他上传的播放列表,2)他观看的播放列表。
2)他看过的播放列表。我试过以下模型。
class User(models.Model):
name=models.CharField
email=models.EmailField
password=models.CharField
isTeacher=models.BooleanField
upvotes=models.IntegerField
class Playlists(models.Model):
creator=models.ForeignKey(User, on_delete=models.CASCADE)
viewed_by=models.ManyToManyField(User, on_delete=models.CASCADE)
name=models.CharField
size=models.IntegerField
我希望你能明白我想做什么. 当然这个方案是行不通的. 但我想做一些类似的事情.
那 可以 的工作,但你需要指定不同值的 related_name=…
参数[Django-doc],这是关系的名称,在 反面所以你可以用以下方法构建这样的模型。
from django.conf import settings
class Playlists(models.Model):
creator = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name='created_playlists'
)
viewed_by = models.ManyToManyField(
settings.AUTH_USER_MODEL,
related_name='viewed_playlists'
)
name = models.CharField(max_length=128)
size = models.IntegerField()
笔记: 一般来说,最好是使用
settings.AUTH_USER_MODEL
[Django-doc] 来指代用户模型,比使用User
模型[Django-doc] 直接。欲了解更多信息,您可以查看 参照User
模型 文件部分.