如何在Django的多个ForeignKey字段中实施不同的值

h

我在Django中有以下模型:

from django.db import models

class Team(models.Model):
    name = models.CharField(max_length=200)


class Match(models.Model):                                                      
    team_home = models.ForeignKey(Team)                                                      
    team_visitors = models.ForeignKey(Team)                                                       
    league = models.CharField(max_length=200)                                                      
    date_played = models.DateField()  

这个想法是为了能够有一个“匹配”对象,该对象有两个参加过某场比赛的团队。一支球队表现自己很奇怪。如何保证team_home不等于team_visitors

这不能通过纯Django完成。有添加CHECK约束的票证https : //code.djangoproject.com/ticket/11964

为了确保team_home == team_visitors永远不会发生这种情况,您将需要向与数据库相关的表中添加自定义约束。例如,在MySQL和PostgresQL中:

alter table myapp_match add constraint match_teams_not_equal check (team_home_id <> team_visitors_id);

保存发生时,这将导致数据库引发完整性错误。请注意,在某些数据库中,您无法实现这种约束。

您可以team_home != team_visitors通过重写save方法来部分确保

class Match(models.Model):
    ....
    def save(self, *args, **kwargs):
        if self.team_home == self.team_visitors:
            raise Exception('attempted to create a match object where team_home == team_visitors')
        super(Match, self).save(*args, **kwargs)

但是,有人可以直接修改数据库,也可以update在Django中使用queryset,但最终仍然可以使用Matchwhere对象team_home == team_visitor

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Django视图中获取特定字段的ForeignKey值

来自分类Dev

如何在Django中命名模型的Foreignkey字段?

来自分类Dev

如何在mongo的单个查询中获取多个字段的不同值?

来自分类Dev

如何在Django模型字段上存储多个值

来自分类Dev

django计算多个字段的不同值

来自分类Dev

Django查询ForeignKey字段的值

来自分类Dev

如何在 elasticsearch 中获取嵌套字段的不同值?

来自分类Dev

如何在Django Rest Framework中重命名ForeignKey设置字段

来自分类Dev

如何在表格中显示ForeignKey的值

来自分类Dev

如何在Django中显示foreignkey图像

来自分类Dev

如何在mysql的单个字段中插入多个值

来自分类Dev

如何在ActiveRecord中查询枚举字段的多个值?

来自分类Dev

如何在输入字段中添加多个值

来自分类Dev

如何在Django模型中搜索多个字段

来自分类Dev

Django管理面板中ForeignKey字段的默认值

来自分类Dev

如何在Django表单中将ForeignKey字段呈现为CharField

来自分类Dev

如何在Django中按不同的字段值过滤?由于MySQL数据库,无法使用distinct()函数

来自分类Dev

如何基于不同模型中其他字段的值设置Django模型字段的值

来自分类Dev

如何在Django模板的* linked *表中显示字段的值?

来自分类Dev

如何在Django中设置ManyToMany字段的值?

来自分类Dev

如何在一周中的特定日期的不同时间快速实施多个本地通知

来自分类Dev

如何在多个工作区中实施Watson对话

来自分类Dev

如何在带条签的Rails中实施多个计划

来自分类Dev

如何在 PreSaveAction 中实施多个 SharePoint 表单验证

来自分类Dev

如何在Elasticsearch中基于输入字段获取字段的总和值(输入字段和总和输出字段不同)

来自分类Dev

如何通过Django中的另一个ForeignKey使用ForeignKey字段获取对象?

来自分类Dev

如何在单个Django查询中使用基于字段值的条件使用多个order_by

来自分类Dev

流星:如何在选择下拉列表中显示集合中的不同字段值?

来自分类Dev

如何在CreateView中动态设置ForeignKey的初始值?

Related 相关文章

  1. 1

    如何在Django视图中获取特定字段的ForeignKey值

  2. 2

    如何在Django中命名模型的Foreignkey字段?

  3. 3

    如何在mongo的单个查询中获取多个字段的不同值?

  4. 4

    如何在Django模型字段上存储多个值

  5. 5

    django计算多个字段的不同值

  6. 6

    Django查询ForeignKey字段的值

  7. 7

    如何在 elasticsearch 中获取嵌套字段的不同值?

  8. 8

    如何在Django Rest Framework中重命名ForeignKey设置字段

  9. 9

    如何在表格中显示ForeignKey的值

  10. 10

    如何在Django中显示foreignkey图像

  11. 11

    如何在mysql的单个字段中插入多个值

  12. 12

    如何在ActiveRecord中查询枚举字段的多个值?

  13. 13

    如何在输入字段中添加多个值

  14. 14

    如何在Django模型中搜索多个字段

  15. 15

    Django管理面板中ForeignKey字段的默认值

  16. 16

    如何在Django表单中将ForeignKey字段呈现为CharField

  17. 17

    如何在Django中按不同的字段值过滤?由于MySQL数据库,无法使用distinct()函数

  18. 18

    如何基于不同模型中其他字段的值设置Django模型字段的值

  19. 19

    如何在Django模板的* linked *表中显示字段的值?

  20. 20

    如何在Django中设置ManyToMany字段的值?

  21. 21

    如何在一周中的特定日期的不同时间快速实施多个本地通知

  22. 22

    如何在多个工作区中实施Watson对话

  23. 23

    如何在带条签的Rails中实施多个计划

  24. 24

    如何在 PreSaveAction 中实施多个 SharePoint 表单验证

  25. 25

    如何在Elasticsearch中基于输入字段获取字段的总和值(输入字段和总和输出字段不同)

  26. 26

    如何通过Django中的另一个ForeignKey使用ForeignKey字段获取对象?

  27. 27

    如何在单个Django查询中使用基于字段值的条件使用多个order_by

  28. 28

    流星:如何在选择下拉列表中显示集合中的不同字段值?

  29. 29

    如何在CreateView中动态设置ForeignKey的初始值?

热门标签

归档