Advertisement
Guest User

Untitled

a guest
Oct 25th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.67 KB | None | 0 0
  1. class CardDeckModel(models.Model):
  2.     deck_name = models.CharField(max_lenght=100)
  3.        
  4.  
  5. class CardModel(models.Model):
  6.     ranks = [str(n) for n in range(2, 11)] + list('JQKA')
  7.     suite = list('CDHS')
  8.  
  9.     Clubs = 'C'
  10.     Diamonds = 'D'
  11.     Hearts = 'H'
  12.     Spades = 'S'
  13.     COLORS = (
  14.         (Clubs, 'Clubs'),
  15.         (Diamonds, 'Diamonds'),
  16.         (Hearts, 'Hearts'),
  17.         (Spades, 'Spades'),
  18.     )
  19.  
  20.     ACE = 'A'
  21.     TWO = '2'
  22.     THREE = '3'
  23.     FOUR = '4'
  24.     FIVE = '5'
  25.     SIX = '6'
  26.     SEVEN = '7'
  27.     EIGHT = '8'
  28.     NINE = '9'
  29.     TEN = '10'
  30.     JACK = 'J'
  31.     QUEEN = 'Q'
  32.     KING = 'K'
  33.  
  34.     RANKS = (
  35.         (ACE, 'Ace'),
  36.         (TWO, '2'),
  37.         (THREE, '3'),
  38.         (FOUR, '4'),
  39.         (FIVE, '5'),
  40.         (SIX, '6'),
  41.         (SEVEN, '7'),
  42.         (EIGHT, '8'),
  43.         (NINE, '9'),
  44.         (TEN, '10'),
  45.         (JACK, 'Jack'),
  46.         (QUEEN, 'Queen'),
  47.         (KING, 'King'),
  48.     )
  49.  
  50.     deck = models.ForeignKey(CardDeckModel)
  51.     rank = models.CharField(max_lenght=6, choices=RANKS)
  52.     color = models.CharField(max_lenght=1, choices=COLORS)
  53.  
  54.     def __init__(self, deck):
  55.         cards = [CardModel(deck=deck, rank=card_rank, color=card_suite) for card_rank in ranks
  56.                                                                         for card_suite in suite]
  57.         for i in cards:
  58.             i.save()
  59.  
  60.     def is_card_exist(self, rank, color):
  61.         try:
  62.             card = CardModel.objects.get(rank=rank, color=color)
  63.         except CardModel.DoesNotExist:
  64.             return False
  65.         else:
  66.             return True
  67.  
  68.     def save(self, *args, **kwargs):
  69.         if self.is_card_exist():
  70.             raise ValueError('Card is already exist')
  71.         else:
  72.             super(CardModel, self).save(*args, **kwargs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement