书签实现逻辑django

时间:2019-05-11 13:26:36

标签: python django api-design

我正在使用django rest框架开发REST API。现在,我想制作一个功能来将某些广告标记为收藏。这是我的一些想法:

  1. 创建新的模型收藏夹,其中包含用户ID和广告ID。因此,移动应用程序将从表中获取它们。但是,使包含外键的表看起来只对体系结构不利。
  2. 在用户模型内添加数组字段,并在其中保存广告ID。使用postgres-extensions中的ArrayField进行了尝试,但是我不断收到与“ form_size”相关的typeerror。即使我从迁移文件中删除了“ form_size”,如here所示,我仍然收到502错误。

所以,我应该继续使用ArrayField并尝试解决该错误吗? 还是用2个外键创建表看起来还不错?

请,如果有人遇到'form_size'类型错误,请帮帮我。

谢谢。

更新1。 这是用户表中的“收藏夹”字段

favorites = ArrayField(
        base_field=models.CharField(max_length=50), default=[], blank=True,
    )

我正在导入这些:

````from django.contrib.postgres.fields import ArrayField

UPD 1.

1 个答案:

答案 0 :(得分:0)

我可以建议2种方法,但是由于第二种方法更简单,所以更喜欢第二种方法:
-创建新模型“书签”就可以了,您将拥有USER和AD模型的外键,这将使您添加其他属性(例如bookmarked_date,bookmarks标记...)
-只需向用户模型添加一个ManyToMany属性“书签”,这很容易,在您的情况下就足够了