【问题标题】:Match two profiles in Django framework匹配 Django 框架中的两个配置文件
【发布时间】:2019-08-16 16:38:05
【问题描述】:

我制作了一个网络应用程序,它由两类用户(比如说 A 和 B)组成,并且有一个共同的板,他们都可以在上面发布一些东西。现在,如果一个来自 A 类的人(John)被 django 卡建议他的最佳匹配是来自 B 类的人(wick),我怎样才能做出通知他们俩的东西。

假设 JOHN 喜欢 WICK 提供的产品,并且他在 WICK 的卡片(迷你简介)上看到了一个图书按钮。现在我想在 JOHN 点击 Book 按钮时通知 Wick,JOHN 对你感兴趣。

示例数据

制造商

M_ID   From  To  M_Type    T_Type  T_Length T_Weight #Trucks 
JOHN   A     B   Boxes     Open    12-Tyre  22       3       
BLAKE  C     D   Cylinders Trailer HIGH     23       2       
GREG   G     H   Scrap     Open    14-Tyre  25       5    

运输工具

T_ID  From To T_Type  T_Length T_Weight #Trucks  Price
WICK  A    B  Open    12-Tyre  22       5        1500
PATEL G    H  Open    14-Tyre  25       10       1200   
NICK  A    B  Open    12-Tyre  22       7        1900

算法以这种格式返回数据

Manufacturer   Best Match   Second Best
JOHN           WICK         NICK
GREG           PATEL         - 

我可以向 JOHN 展示他最好的比赛是 WICK 和 NICK(当他点击他们时,他们的迷你个人资料将显示给他,并带有一个 BOOK 选项,但我接下来该怎么做才能让事情发生(警告 WICK/NICK)当他点击书本按钮时??

【问题讨论】:

    标签: python django forms algorithm django-models


    【解决方案1】:

    当您实际上在 Django ORM 抽象级别上工作时,您不应该在 SQL 表中说话。

    您只需要一个 ManyToMany 字段。您将添加该 m2m 字段并向用户提供新的字段(可能将制造商和运输商合并到一个模型(表)以不复制此功能)。

    建议您不要使用自动 m2m,而是使用 through model 添加额外字段,例如布尔值 has_been_seen。或者,如果用户的 last_activity 大于创建实例的日期时间,您可以猜测实例已被看到。

    【讨论】:

      【解决方案2】:

      这是一个相当广泛的问题,但这里是。

      JOHN 点击,请求的处理要么立即执行某项操作(例如向 NICK 发送电子邮件),要么将某些内容存储在数据库中,这些内容将在 NICK 下一次交互时引起 NICK 的注意应用程序。 可能是一个通知表,其中包含 JOHN (notifier)、NICK (notifiee --yuk) 和相关数据的外键。

      当您对该帖子进行投票或添加评论时,我将在 stackoverflow 页面顶部看到类似后者的内容。如果我一个月没有回到stackoverflow,我会看到它,或者你可以在你存储的内容中包含一个到期日期,以便在这段时间过去后,通知将被视为过时并删除没有尼克意识到这一点的苍蝇。

      我希望您可以在某个地方找到其他人编写的用于实现大部分功能的东西。可能是一种中间件,如果要在每次交互时检查它,而不仅仅是在登录时检查。对不起,我不能提供任何指示。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-29
        • 2019-04-29
        • 1970-01-01
        • 2013-04-25
        • 1970-01-01
        • 2012-11-28
        • 1970-01-01
        相关资源
        最近更新 更多