@@ -517,11 +517,15 @@ def filter(self, **kwargs):
517517 assert queryset .called_with == {'race_name' : 'bar' , 'position' : 1 }
518518
519519
520+ class FancyConditionModel (models .Model ):
521+ id = models .IntegerField (primary_key = True )
522+
523+
520524class UniqueConstraintModel (models .Model ):
521525 race_name = models .CharField (max_length = 100 )
522526 position = models .IntegerField ()
523527 global_id = models .IntegerField ()
524- fancy_conditions = models .IntegerField ( )
528+ fancy_conditions = models .ForeignKey ( FancyConditionModel , on_delete = models . CASCADE )
525529
526530 class Meta :
527531 constraints = [
@@ -578,23 +582,24 @@ class Meta:
578582
579583class TestUniqueConstraintValidation (TestCase ):
580584 def setUp (self ):
585+ fancy_model_condition = FancyConditionModel .objects .create (id = 1 )
581586 self .instance = UniqueConstraintModel .objects .create (
582587 race_name = 'example' ,
583588 position = 1 ,
584589 global_id = 1 ,
585- fancy_conditions = 1
590+ fancy_conditions = fancy_model_condition
586591 )
587592 UniqueConstraintModel .objects .create (
588593 race_name = 'example' ,
589594 position = 2 ,
590595 global_id = 2 ,
591- fancy_conditions = 1
596+ fancy_conditions = fancy_model_condition
592597 )
593598 UniqueConstraintModel .objects .create (
594599 race_name = 'other' ,
595600 position = 1 ,
596601 global_id = 3 ,
597- fancy_conditions = 1
602+ fancy_conditions = fancy_model_condition
598603 )
599604
600605 def test_repr (self ):
@@ -618,24 +623,27 @@ def test_unique_together_condition(self):
618623 Fields used in UniqueConstraint's condition must be included
619624 into queryset existence check
620625 """
626+ fancy_model_condition_9 = FancyConditionModel .objects .create (id = 9 )
627+ fancy_model_condition_10 = FancyConditionModel .objects .create (id = 10 )
628+ fancy_model_condition_11 = FancyConditionModel .objects .create (id = 11 )
621629 UniqueConstraintModel .objects .create (
622630 race_name = 'condition' ,
623631 position = 1 ,
624632 global_id = 10 ,
625- fancy_conditions = 10 ,
633+ fancy_conditions = fancy_model_condition_10 ,
626634 )
627635 serializer = UniqueConstraintSerializer (data = {
628636 'race_name' : 'condition' ,
629637 'position' : 1 ,
630638 'global_id' : 11 ,
631- 'fancy_conditions' : 9 ,
639+ 'fancy_conditions' : fancy_model_condition_9 ,
632640 })
633641 assert serializer .is_valid ()
634642 serializer = UniqueConstraintSerializer (data = {
635643 'race_name' : 'condition' ,
636644 'position' : 1 ,
637645 'global_id' : 11 ,
638- 'fancy_conditions' : 11 ,
646+ 'fancy_conditions' : fancy_model_condition_11 ,
639647 })
640648 assert not serializer .is_valid ()
641649
0 commit comments