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')