Django 中的一对多和个人
One-To-Many and Individual in Django
我已经自定义了 django 用户对象如下,
class User(AbstractBaseUser):
mobile = models.CharField(max_length=100, unique=True)
email = models.EmailField(max_length=255)
username = models.CharField(max_length=255)
full_name = models.CharField(max_length=255, blank=True, null=True)
staff = models.BooleanField(default=False)
admin = models.BooleanField(default=False)
root = models.BooleanField(default=False)
我还有一个 feed 和一个 Source 对象,它们是一对多的关系。
class Source(Base):
name = models.CharField(max_length=255)
class Feed(Base):
headline = models.CharField(max_length=255)
link = models.CharField(max_length=255)
summary = models.TextField()
published_date = models.DateTimeField()
views = models.IntegerField(default=0)
shares = models.IntegerField(default=0)
source = models.ForeignKey(Source, on_delete=models.CASCADE,)
现在我想模拟一个书签操作,从而将多个提要与一个用户相关联。我如何在 Django 中做到这一点。
添加另一个模型Bookmark
。
class Bookmark(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
fed = models.ForeignKey(Feed, on_delete=models.CASCADE)
last_read_page = models.IntegerField()
然后将此字段添加到您的 Feed
模型中。
reader = models.ManyToManyField(User, through='Bookmark')
我已经自定义了 django 用户对象如下,
class User(AbstractBaseUser):
mobile = models.CharField(max_length=100, unique=True)
email = models.EmailField(max_length=255)
username = models.CharField(max_length=255)
full_name = models.CharField(max_length=255, blank=True, null=True)
staff = models.BooleanField(default=False)
admin = models.BooleanField(default=False)
root = models.BooleanField(default=False)
我还有一个 feed 和一个 Source 对象,它们是一对多的关系。
class Source(Base):
name = models.CharField(max_length=255)
class Feed(Base):
headline = models.CharField(max_length=255)
link = models.CharField(max_length=255)
summary = models.TextField()
published_date = models.DateTimeField()
views = models.IntegerField(default=0)
shares = models.IntegerField(default=0)
source = models.ForeignKey(Source, on_delete=models.CASCADE,)
现在我想模拟一个书签操作,从而将多个提要与一个用户相关联。我如何在 Django 中做到这一点。
添加另一个模型Bookmark
。
class Bookmark(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
fed = models.ForeignKey(Feed, on_delete=models.CASCADE)
last_read_page = models.IntegerField()
然后将此字段添加到您的 Feed
模型中。
reader = models.ManyToManyField(User, through='Bookmark')