Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在django中实现依赖模型字段的思想?_Django_Django Models - Fatal编程技术网

如何在django中实现依赖模型字段的思想?

如何在django中实现依赖模型字段的思想?,django,django-models,Django,Django Models,我正在创建一个具有Post和Tag as模型的应用程序 帖子有标签,例如,每个标签都以某种方式描述帖子 贴子具有以下标记 #backend_development #coding 我把Post模型和Tag模型联系在一起 每个帖子创建者从数据库中预先填充的列表中选择标签,这意味着他们不会在帖子上创建标签,他们只是选择它们 问题是,我试图以某种方式对这些标记进行分类,例如,当单击时,所有与技术相关的标记都位于列表中的技术字段下。它显示所有与技术相关的标记,如果是业务字段,例如,它显示所有与业务相关

我正在创建一个具有Post和Tag as模型的应用程序

帖子有标签,例如,每个标签都以某种方式描述帖子 贴子具有以下标记

#backend_development #coding
我把Post模型和Tag模型联系在一起

每个帖子创建者从数据库中预先填充的列表中选择标签,这意味着他们不会在帖子上创建标签,他们只是选择它们

问题是,我试图以某种方式对这些标记进行分类,例如,当单击时,所有与技术相关的标记都位于列表中的技术字段下。它显示所有与技术相关的标记,如果是业务字段,例如,它显示所有与业务相关的标记

如何实现此分类?例如,我是否应该构建另一个名为SubjectTag的模型来包含所有标记的主题并将其与标记模型关联?
我是否应该这样做,并使用某种html魔术,可以为我做到这一点?我不知道,你怎么看?

与标签相关联的标签主题模型(可能是多对多)似乎是处理标签分类的最直接、最易管理的方式。

因此,你想要的是按类型/主题对标签进行分类

提案1: 那么,我要做的就是为可用的主题定义一个枚举:

SUBJECTS=(“商业”、“技术”和…)

然后,在您的模型中,正如您所说,您将拥有模型
Post
,该模型将有一个M2M到模型
标签
。然后,模型标签可以包含两个字段:
name
subject

  • name
    将是可用于向客户端显示的标记的名称
  • subject
    将是枚举类型,其中可能的选择是在
    subject
    上定义的选择。例如,在Postgresql中,您可以定义可以看到的枚举。此外,您也可以将其保留为字符串字段,并且更为宽松,这样您就可以在
    主题
    字段中添加自由文本
提案2: 在第三个模型中定义主题,然后您的标签模型将具有
主题
模型的外键

使用上述两种方案,一旦您可以使用此结构,您就可以始终按主题对标记进行筛选/分组,并以您希望的方式向最终用户展示它


方案2的优点是允许您以最灵活的方式添加/删除主题。所以,我认为这是最好的选择

但我如何向用户展示这种关系,也就是说,我如何让用户选择技术主题,并在创建帖子时自动在面板中显示与之相关的标签?我将使用哪种技术?