如何在unique_together中使用外键字段进行验证?

问题描述

In this image admin view is shown.此模型数据将从 django 认管理端添加添加。 在此图像中显示了管理视图。 我试图使 tournament_date、tournament_time 和 match_type 必须是唯一的条目。

tournament_date 和 match_type 在 MTournament 表中 锦标赛时间在 Mtournament_Time 表中 这就是我在 Mtournament_Time 表中实现 unique_together 的方式。

unique_together = ['mtournament__tournament_date','mtournament__match_type','tournament_time']

class BaseClass(models.Model):
    is_active
    insert_date
    updated_date


class Game(BaseClass):
    # is_active,insert_date,updated_date
    # name,game_image
    name = models.CharField(max_length=16)
    game_image = models.ImageField(upload_to='game_images/',default='game_images/game_default.jpg')


class GameMap(BaseClass):
    # is_active,updated_date
    game = models.ForeignKey(Game,on_delete=models.SET_NULL,null=True)
    name = models.CharField(max_length=64)


class Tournament(BaseClass):
    CHECK = (
        ("No","NO"),("Yes","YES"),)
    MATCH_TYPE = (
        ("Solo","SOLO"),("Duo","DUO"),("squad","squad"),)
    # is_active,updated_date
    # game,name,tournament_date,map,match_type,camera_type,country,country_base
    game = models.ForeignKey(Game,null=True)
    name = models.CharField(max_length=64)
    tournament_image = models.ImageField(upload_to='esports/tournament',default='esports/user/default.png')
    country = models.ForeignKey(Country,null=True,default=99) 
    country_base = models.CharField(choices=CHECK,max_length=8,default='NO')


class MTournament(BaseClass):
    MATCH_TYPE = (
        ("Solo",updated_date
    # tournament,mtournament_date,match_type
    tournament = models.ForeignKey(Tournament,null=True)
    tournament_date = models.DateField(verbose_name='Tournament Date')
    map = models.ForeignKey(GameMap,null=True)
    match_type = models.CharField(choices=MATCH_TYPE,max_length=32,default=1)
   

class Mtournament_Time(BaseClass):
    # is_active,updated_date
    mtournament = models.ForeignKey(MTournament,null=True)
    tournament_time = models.TimeField(verbose_name='Multiple Tournament Time')

    class Meta:
        db_table = 'tbl_mtournament_time'
        verbose_name = "Tournament Time"
        # Below is the code i want to check
        unique_together = ['mtournament__tournament_date','tournament_time']

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)