首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我可以在unique_together字段上使用ManyToMany吗?

我可以在unique_together字段上使用ManyToMany吗?
EN

Stack Overflow用户
提问于 2018-10-17 20:29:25
回答 1查看 2.5K关注 0票数 2

我有一个OrderPage模型,它对Site来说是多方面的。在Django管理中,我希望限制站点的选择(属于现有SiteOrderPage不能再次被选中)。我能用unique_together做吗?下面的ManyToManyFields are not supported in unique_together模型出错了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class OrderPage(models.Model):

    description = models.CharField(max_length=255, blank=False)
    sites = models.ManyToManyField(Site)

    class Meta:
        unique_together = (('id', 'sites'),)


class Order(models.Model):
    order_page = models.ForeignKey(OrderPage)


class OrderPageAdmin(admin.ModelAdmin):
    filter_horizontal = ('sites',)

admin.site.register(OrderPage, OrderPageAdmin)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-17 21:15:29

如果Site只能有一个OrderPage,则不需要担心unique_together。

理想情况下,您应该将Site子类并将ForeignKey从该子类使用到OrderPage。这将为您提供您想要的东西:每个站点都可以有一个OrderPage,每个OrderPage可以有多个站点。这将是最干净的,但是您必须在整个程序中使用您的子类来代替原来的Site,这可能比您现在想要的工作量更多。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class BetterSite(Site):
    order_page = models.ForeignKey('OrderPage')

更脏的方法是保留M2M,并将site设置为唯一,因为M2M表中的每个站点都应该只有一个条目。您可以使用“通过”表来设置自定义唯一性值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class OrderPage(models.Model):
    description = models.CharField(max_length=255, blank=False)
    sites = models.ManyToManyField(Site, through='OrderPageToSite')

class OrderPageToSite(models.Model):
    order_page = models.ForeignKey(OrderPage)
    site = models.ForeignKey(Site, unique=True)

(请注意,我保留了这些简单的内容,但在FK字段中,您还应该考虑设置on_deleterelated_name)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52867051

复制
相关文章
[答疑]可以在手机或平板上使用EA吗
https://sparxsystems.com/products/procloudserver/#webeabook
用户6288414
2019/09/23
2.7K0
[答疑]可以在手机或平板上使用EA吗
DRF中多对多ManytoMany字段的更新和添加
drf的序列化器给模型输出带来了便利但是对于多对多字段网上查询的内容却是很少(也有可能是本人不会搜答案)
对你的承诺
2023/09/07
9830
我可以弃用这个端点吗?
让我们假设你是一个开发人员,接管了 Catalog 微服务的所有权。你被要求弃用/v1/catalog 端点而使用新的/v2/catalog 端点。你该怎么做呢?
CNCF
2022/03/25
1.7K0
我可以弃用这个端点吗?
[译]你可以在JSX中使用console.log吗?
可是上面的代码并不可以得到他们想要的结果,浏览器会把这段代码console.log(this.props.todos) 当做纯文本在界面展示出来 。
进击的大葱
2022/08/22
2.3K0
我应该使用 PyCharm 在 Python 中编程吗?
Python 是一种广泛使用的编程语言,以其简单、多功能和庞大的开发人员社区而闻名。这个社区不断创建新的库和工具,以提高Python编程的效率和便利性。选择正确的环境来编写和调试 Python 代码可能具有挑战性,但 PyCharm 是一个很好的选择,从其他选项中脱颖而出。
很酷的站长
2023/02/20
4.6K0
我应该使用 PyCharm 在 Python 中编程吗?
在推荐系统中,我还有隐私吗?联邦学习:你可以有
随着互联网覆盖范围的扩大,越来越多的用户习惯于在网上消费各种形式的内容,推荐系统应运而生。推荐系统在我们的日常生活中无处不在,它们非常有用,既可以节省时间,又可以帮助我们发现与我们的兴趣相关的东西。目前,推荐系统是消费领域最常见的机器学习算法之一[1]。以网络新闻为例,由于每天都有大量的新闻文章发布在网上,在线新闻服务的用户面临着严重的信息过载。不同的用户通常喜欢不同的新闻信息。因此,个性化新闻推荐技术被广泛应用于用户的个性化新闻展示和服务中。关于新闻的推荐算法 / 模型研究已经引起了学术界和产业界的广泛关注。
机器之心
2020/12/03
4.7K0
在推荐系统中,我还有隐私吗?联邦学习:你可以有
Python这么火,我可以学吗?
越来越多行业都在应用的Python,主要的应用领域有哪些呢?Python每个人都可以学吗?今天我们就来详细看一下。
老九君
2020/03/11
1.2K0
探索 Python/Django 支持分布式多租户数据库,如 Postgres+Citus
在 确定分布策略 中,我们讨论了在多租户用例中使用 Citus 所需的与框架无关的数据库更改。在这里,我们专门研究如何借助 django-multitenant 库将多租户 Django 应 用程序迁移到 Citus 存储后端。
为少
2022/05/18
2.1K0
探索 Python/Django 支持分布式多租户数据库,如 Postgres+Citus
“我是零基础小白,我可以转行大数据吗?”
我们在做出一个决定之前总是会有这样那样的担忧和犹豫,特别是当自身厌倦了目前的工作和生活,思考未来的时候。“我要不要继续过这样的生活?”“我要不要待在舒适圈?”“我要不要转行?转行的话我没有经验,会不会不太好?”这其实就是我们做决定前的常态,特别是在如今高压的生活下。想要赚钱,但又迟迟不能做出决定。其实当你有这样那样的犹豫师,你心里已经有一个答案了,只是你没有勇气去做。如果你想获得高薪,大数据行业的确可以成为你转行的首选。
成都加米谷大数据
2021/03/10
6770
“我是零基础小白,我可以转行大数据吗?”
为什么我在 Linux 上使用 exa 而不是 ls?
我们生活在一个繁忙的世界里,当我们需要查找文件和数据时,使用 ls 命令可以节省时间和精力。但如果不经过大量调整,默认的 ls 输出并不十分舒心。当有一个 exa 替代方案时,为什么要花时间眯着眼睛看黑白文字呢?
用户1880875
2021/09/06
2K0
App在苹果上架难吗
App Store是唯一的官方应用商店,如果自己不知道怎么上架,可以借助第三方开发者服务平台进行上架。应用规范的情况下,加急三天就可以上架。
爱学iOS的小麦子
2023/01/04
3220
App在苹果上架难吗
App Store是唯一的官方应用商店,如果自己不知道怎么上架,可以借助第三方开发者服务平台进行上架。应用规范的情况下,加急三天就可以上架。
iOS Magician
2023/03/22
3790
在火星上生活靠谱吗?
 一部《火星救援》,使得话题不断的火星更火了。电影改编自安迪•威尔的同名小说,讲述了由于一场沙尘暴,宇航员马克•沃特尼与其他机组成员失联,孤身一人置身于火星并面临着飞船损毁、贫乏的生命补给等问题,想方设法回地球的故事。原著小说作者安迪•威尔是个技术宅,而电影又得到了美国国家航空航天局(NASA)的鼎力相助,所以无论是剧本还是场景设计,《火星救援》都可以说是一部完全为太空迷量身打造的作品。
IT阅读排行榜
2018/08/14
5470
在火星上生活靠谱吗?
@Async可以和@Transactional结合使用吗?
在编写Spring在多线程环境下如何确保事务一致性时,我突然联想到@Async注解,心里就在盘算着@Async注解能否和@Transactional注解一起使用呢?
大忽悠爱学习
2022/10/24
3.5K0
@Async可以和@Transactional结合使用吗?
电源模块可以并联使用吗?!
在实际工程中,经常出现一个电源模块无法满足负载的电流需求,或是想进一步提高DCDC效率,此时大部分工程师首先会想到并联电源来提高更大的电流,对于这样的设计,通常的评估结果是:不要粗暴的并联。
工程师看海
2022/06/23
9130
电源模块可以并联使用吗?!
我后悔在简历上写了“精通”…
前言:众所周知,简历上“了解=听过名字;熟悉=知道是啥;熟练=用过;精通=做过东西”,我现在十分后悔在简历上写了“精通”二字…
小灰
2020/04/22
1.2K1
答应我,别再 if/else 走天下了可以吗?
想当年,其实我也特别钟情于 if/else连环写法,上来就是一顿SAO操作,比如举个好理解的简单栗子:
GitHubDaily
2020/02/21
8100
答应我,别再 if/else 走天下了可以吗?
我只会 Java 一门语言可以吗?
如果你这么想,说明你被自己的看家本事给局限住了,这种思维方式会让你即便学到了更多好东西,也无可奈何。
JavaEdge
2023/01/15
8090
答应我,别再 if/else 走天下了可以吗?
想当年,其实我也特别钟情于 if/else连环写法,上来就是一顿SAO操作,比如举个好理解的简单栗子:
五分钟学算法
2020/02/20
6980
答应我,别再 if/else 走天下了可以吗?
点击加载更多

相似问题

带有ManyToMany关系直通表中外键字段的unique_together

113

可以通过查询集更新ManyToMany字段吗?

12

什么时候在ForeignKey上使用ManyToMany字段?

22

如何通过字段在Django ModelManager上使用ManyToMany?

11

MongoDB --我可以同时在字段上使用@TextIndexed和@Indexed吗?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文