问题标签 [generic-foreign-key]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 添加/编辑 django 通用外键对象
型号设备:
模型属性值:
型号属性:
在我的设备编辑(添加)页面中,它需要能够创建或选择一个属性,然后创建(或编辑/删除)一个属性值(可以是数值、长文本值、短文本值或文件)与此属性相关联,以及当前(或新)设备。你将如何为这种场景创建一个 django 表单集?
python - Django - forms.py 中的通用外键或查询?
我一直在拼凑一个使用 ContentType/Generic Foreign Key 今天最好的部分的模型,因为从我的谷歌搜索来看,它似乎是我正在寻找的解决方案。但是,现在我有了一些渲染,似乎并非如此。
我想要的只是一个外键下拉列表,它允许用户从两个模型之一中选择一个记录。使用 GenericForeignKey,它会列出在我的“限制”语句中指定的模型,但随后希望用户知道 ID/PK 并将其输入到“object_id”字段中。这个对吗?
我现在正在考虑从两个模型中获取所有记录并在下拉列表中列出它们的查询将是一个更清洁的解决方案。如果是这样,我会在forms.py中实现吗?
外键元素不太重要,因为我只需要能够从两个关联模型中导入/操作一些字段并将它们保存到新模型中。
提前致谢。
django - Django Admin:使用 GenericForeignKey “另存为”时出现完整性错误
我有的:
a) 一个简单的类来存储标签:
b) 将反向添加到任何类的 mixin:
c) 还有一些类,称为 Data,它继承自 Mixin。在管理中,此类使用 GenericTabularInline for Tag 来显示数据的标签。它还将“save_as”设置为 True,以便在其管理页面上获得“另存为”按钮。
会发生什么:当我为具有至少一个标签的数据对象单击“另存为”时,我得到:完整性错误(1048,“列'content_type_id'不能为空”)
在我看来,Django Admin 在执行“另存为”时似乎没有正确处理 GenericForeignKeys。有没有办法让它运行?解决问题的方法?还是我在这里做错了什么?
也许我应该补充一下,我在这里使用的是 Django 1.7.7。
编辑:我们已经升级到 1.8.2 并且问题仍然存在。有任何想法吗?
django - 用于处理不同业务级别的相似/相同对象的数据库结构
设想
一家著名的 taco 机构想要构建一个 Django 应用程序,其中包含Combo
、ComboItem
、Ingredient
和Order
.
- 总部想要创建包含项目的各种组合,并布置原始项目成分和价格。
- 然后,每个特许经营商可以选择他们将在他们的菜单上销售的组合,并允许调整他们商店的组合项目的价格和成分。
- 当收到订单时,组合和项目详细信息应显示在日志上,并且如果总部重命名组合或特许经营更改价格/成分,则将来不应更改。
用例
HQ 创建了“Hot Taco Combo”。它具有三个相关的组合项目
- 一个炸玉米饼(价格:0.99 美元,配料:贝壳、牛肉、奶酪、辣酱)
- 油条螺旋(价格:0.79 美元)
- 饮料(价格:1.29 美元)
纽约特许经营店将 Hot Taco Combo 添加到他们的菜单中。他们将炸玉米饼的价格调整为 1.49 美元,并在炸玉米饼中加入生菜。
一位顾客订购了玉米卷上没有奶酪的组合。
HQ 将组合的名称更改为 Fiery Taco Combo - 纽约的组合名称更新,但 taco 保持相同的定制价格,仍然包括生菜。
NY 特许经营店的一位经理查看了所有订单,并看到了Hot Taco Combo的一份订单,而炸玉米饼的原料只有壳、肉和生菜。
问题
我正在努力确定处理此问题的最佳方法,因为 aCombo
在所有三个级别上基本上是相同的对象,但其相关ComboItem
对象可能不同。HQ 应该能够更新 Combo 属性,例如名称,它会更新所有特许经营组合名称,但组合项目自定义应该保留。此外,为了准确的订单记录,销售点的组合细节和定制一旦记录就不应更改。
最初我想AbstractBaseClass
在每个业务级别上为每个相关模型和从它们继承的对象都有一个,但这种结构感觉冗余且难以维护。
然后我想使用GenericForeignKey
将组合与总部、特许经营权或订单相关联,并在必要时复制对象,因为它们向下移动。这感觉很奇怪并且容易出错。
有没有人处理过这样的案例或有什么建议?这只是一个复杂的问题并需要一个复杂的解决方案,还是我缺少一种简单的方法?先感谢您。
python - 管理员搜索通用外键 django
我正在尝试在存在通用外键的模型上进行管理员搜索。
管理员.py
我可以使用搜索object_id
。但我想使用该object_id
对象的字段进行搜索。
前任。用户有一个外键来建模。然后我想使用username
、first_name
和搜索该用户的隐私设置。email
last_name
提前致谢。
python - Django 从它自己的方法之一中删除一个对象
我有一个模型:
如果外键被删除,它会中断,所以当需要的外键被删除时,我不会中断,而是捕获它。发生这种情况时,如何删除整个 MyModel 实例,然后继续。
django - Django通用外键反向过滤器
我有一个名为“Comments”的模型,它使用通用外键:
您可以发表评论的其中一件事是Tickets
:
我做了很多过滤Tickets
- 过去我对门票的评论所做的只是当我显示 a 时Ticket
,我曾经Comments.objects.for_model(ticket)
找到它的所有评论。但现在我想做的是Tickets
在评论中找到特定的文本。没有comment_set
或等价于GenericForeignKey
。
这是我想出的,但它非常可怕:
一定会有更好的办法。
django - Django 通用外键:如何使用通用外键检索一组对象的所有内容对象?
您好,我有一个模型,它使用通用外键附加到几个不同的其他模型。我想在一个查询中获取所有这些内容对象。
我创建了一个包含所有内容类型 ID 和对象 ID 的数据结构。如何使用内容类型 ID 和对象 ID 获取大量内容对象?不必对这些内容对象中的每一个进行查询,我可以通过一次查询来获取所有内容吗?
python - 如何为通用模型设置 django 用户选项
我有一个自定义用户数据的配置文件模型:
我还有一个通知应用程序,它允许模型向用户发送通知和电子邮件。
我希望用户可以选择打开或关闭不同的通知,但我不想像这样将大量布尔字段列表添加到配置文件中:
其中 modelx 是作为通知来源的某个模型或其他应用程序,而 noticex/emailx 是通知的某些特定原因。
我在想一种更可持续的方法是创建一个 ProfileOptions 模型,外部模型可以使用它来定义自己的通知设置。
这样,当我添加一个新的应用程序/模型时,我可以以某种方式将其通知源链接到 ProfileOptions 模型,并让这些选项以神奇的方式打开或关闭它们出现在用户的配置文件中。
这有意义吗?如果是这样,有可能吗?如果是这样,这是个好主意吗?如果是这样,我应该使用什么结构来连接模型、ProfileOptions 和用户的 Profile?
显然我希望对最后一个问题有答案,但我不想排除其他问题的答案可能是“否”的可能性。
django - 使用 Django GenericForeignKey 存储基本通知
我用过很多 Django,而且我对模型相当熟悉。但是,我刚刚遇到了 GenericForeignKey 和 ContentTypes 框架。
我打算使用这些来存储引用其他一些模型的基本通知。
例如,我有以下型号
现在,对于一个用户的这些操作中的每一个,其他相关用户都会收到通知。我已经通过使用 Node 服务器和 socket.io 完成了这些的实时方面。但是,为了让目前不在线的用户实现同样的行为,我遇到了上面提到的通用外键和 ContentTypes。
我的问题是,由于文档对此不太清楚,我想知道如何使用这两个功能来存储用户活动?