class Exercise(models.Model): ExcName = models.CharField(max_length=100) muscle = models.ForeignKey('MuscleGroup', on_delete=models.PROTECT) Creator = models.ForeignKey('Lifter', on_delete=models.PROTECT) weight = models.CharField(max_length=500, null=True, blank=True) set_reps = models.CharField(max_length=500, null=True, blank=True) Note = models.CharField(max_length=250, blank=True, null=True) set_record = ListTextField(default='', base_field=models.CharField(max_length=50), size=100) weight_record = ListTextField(default='', base_field=models.CharField(max_length=50), size=100) def create_exercise(self): self.save() def __str__(self): return self.ExcName + ": " + self.muscle.Name def return_exercises(self, muscle): exc_list = [] for exercise in Exercise.objects.all(): if exercise.muscle == muscle: exc_list.append(exercise) return exc_list
class MinedRepo(models.Model): repo_name = models.CharField(max_length=240, null=False, blank=False) requested_by = models.CharField(max_length=240, null=False, blank=False) send_email = models.BooleanField() num_pulls = models.IntegerField(validators=[MinValueValidator(0)]) num_closed_merged_pulls = models.IntegerField( validators=[MinValueValidator(0)]) num_closed_unmerged_pulls = models.IntegerField( validators=[MinValueValidator(0)]) num_open_pulls = models.IntegerField(validators=[MinValueValidator(0)]) created_at_list = ListTextField(base_field=models.CharField( max_length=240)) closed_at_list = ListTextField(base_field=models.CharField(max_length=240)) merged_at_list = ListTextField(base_field=models.CharField(max_length=240)) num_newcomer_labels = models.IntegerField( validators=[MinValueValidator(0)]) bar_chart_html = models.TextField() pull_line_chart_html = models.TextField() contribution_line_chart_html = models.TextField() completed_timestamp = models.DateTimeField(auto_now_add=True) accepted_timestamp = models.DateTimeField(auto_now_add=False) requested_timestamp = models.DateTimeField(auto_now_add=False) updated = models.DateTimeField(auto_now=True) def __str__(self): return f"{self.repo_name}, {self.completed_timestamp}, {self.updated}"
class UserProfile(models.Model): user = models.OneToOneField( User, on_delete=models.CASCADE, related_name="profile", null=True ) is_full_name_displayed = models.BooleanField(default=True) classrooms = ListTextField(base_field=CharField(max_length=10, null=True), size=5) passcode = models.CharField(max_length=200) created = ListTextField(base_field=CharField(max_length=10, null=True), size=5) # favored = ListTextField(base_field=CharField(max_length=10, null=True), size=5) # disliked = ListTextField(base_field=CharField(max_length=10, null=True), size=5) favored = models.CharField(max_length=200) disliked = models.CharField(max_length=200) def delete_user(self): self.User.delete() def setup(self): self.favored = json.dumps([]) self.disliked = json.dumps([]) self.passcode = json.dumps([]) @classmethod def create(cls, id): obj = cls(user_id=id) obj.setup() return obj
class Excursion(models.Model): name = models.CharField(max_length=22) detailPageName = models.CharField(max_length=33) portID = models.CharField(max_length=4) type = models.CharField(max_length=10) topology = ListTextField(base_field=models.IntegerField(blank=True), size=100) activityLevel = models.CharField(max_length=44) collectionType = models.CharField(max_length=22) duration = models.CharField(max_length=33) language = ListTextField(base_field=models.CharField(max_length=11, blank=True), size=100) priceLevel = models.IntegerField() currency = models.CharField(max_length=22) mealInfo = models.CharField(max_length=22, blank=True) status = models.CharField(max_length=22, choices=CHOICES, default='Active') shortDescription = models.CharField(max_length=44) longDescription = models.CharField(max_length=88) externalContent = models.BooleanField(default=False) minimumAge = models.IntegerField() wheelChairAccessible = models.BooleanField(default=False) featured = models.BooleanField(default=False) objects = models.Manager() class Meta: db_table = 'Excursions' ordering = ['name'] verbose_name = 'Excursions' verbose_name_plural = 'Excursions' def __str__(self): return self.name
class SearchedValue(models.Model): searchlist = ListTextField(base_field=models.CharField(max_length=100), size=100) mileagerange = ListTextField(base_field=models.CharField(max_length=100), size=100) pricerange = ListTextField(base_field=models.CharField(max_length=100), size=100) yearmodel = ListTextField(base_field=models.CharField(max_length=100), size=100) def __str__(self): return f"{self.searchlist} {self.mileagerange} {self.pricerange}"
def test_deconstruct_args(self): field = ListTextField(models.CharField(max_length=5), max_length=32) name, path, args, kwargs = field.deconstruct() new = ListTextField(*args, **kwargs) self.assertEqual( new.base_field.max_length, field.base_field.max_length )
def test_field_checks(self): field = ListTextField(models.CharField(), max_length=32) field.set_attributes_from_name('field') errors = field.check() self.assertEqual(len(errors), 1) self.assertEqual(errors[0].id, 'django_mysql.E004') self.assertIn('Base field for list has errors', errors[0].msg) self.assertIn('max_length', errors[0].msg)
def test_invalid_base_fields(self): field = ListTextField( models.ForeignKey('django_mysql_tests.Author'), max_length=32 ) field.set_attributes_from_name('field') errors = field.check() self.assertEqual(len(errors), 1) self.assertEqual(errors[0].id, 'django_mysql.E005') self.assertIn('Base field for list must be', errors[0].msg)
class Post(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) source = models.URLField(max_length=255, default=url) # where did you get this post from? origin = models.URLField(max_length=255, default=url) # where is it actually from # The content type of the post, assume either # text/markdown, text/plain, application/base64 # These are embedded png or jpeg -- might need to make two posts for images # image/png;base64, image/jpeg;base64 # for HTML you will want to strip tags before displaying contentType = models.CharField(max_length=18) author = models.ForeignKey(User, on_delete=models.CASCADE) published = models.DateTimeField(default=timezone.now) # this one is not in the spec updated = models.DateTimeField(auto_now=True) title = models.TextField() description = models.TextField() content = models.TextField() # for visibility PUBLIC means it is open to the wild web # FOAF means it is only visible to Friends of A Friend # If any of my friends are your friends I can see the post # FRIENDS means if we're direct friends I can see the post # PRIVATE means only you can see the post # SERVERONLY means only those on your (home) server can see the post # PRIVATE means only authors listed in "visibleTo" can see the post VISIBILITY_CHOICES = [ ("PUBLIC", "PUBLIC"), ("FOAF", "FOAF"), ("FRIENDS", "FRIENDS"), ("PRIVATE", "PRIVATE"), ("SERVERONLY", "SERVERONLY"), ] visibility = models.CharField(max_length=10, choices=VISIBILITY_CHOICES, default="PUBLIC") #"visibleTo":[], # list of author URIs who can read the PRIVATE message # categories this post fits into (a list of strings) #"categories":["web","tutorial"], # unlisted means it is public if you know the post name # use this for images, it's so images don't show up in timelines unlisted = models.BooleanField(default=False) categories = ListTextField(base_field=models.CharField(max_length=63)) visibleTo = ListTextField(base_field=models.CharField(max_length=255)) local = models.BooleanField(default=True) def get_comments(self): # return Comment.objects.filter(id=self.id) return Comment.objects.filter(post=self.id) class Meta: ordering = ['-published']
class Order(models.Model): user = models.ForeignKey(User, on_delete=models.DO_NOTHING) products = ListTextField(base_field=models.IntegerField(), size=10, blank=True) quantity = ListTextField(base_field=models.IntegerField(), size=10, blank=True) amount = ListTextField(base_field=models.IntegerField(), size=11, blank=True) list_date = models.DateField(auto_now_add=True)
class Fridge(models.Model): name = models.CharField(max_length=255) owner = models.ForeignKey(User, models.DO_NOTHING, related_name='fridges') friends = ListTextField(base_field=IntegerField(), default=[]) auto_gen_grocery_list = ListTextField( base_field=CharField(max_length=15), default=[]) manually_added_list = ListTextField( base_field=CharField(max_length=15), default=[]) creation_date = models.DateTimeField() modified_date = models.DateTimeField() eff_bgn_ts = models.DateTimeField() eff_end_ts = models.DateTimeField()
class User(models.Model): auth_user = models.ForeignKey('AuthUser', models.DO_NOTHING, related_name='users') username = models.CharField(unique=True, max_length=255) primary_fridge = models.IntegerField(blank=True, default=-1) # Saving fridge IDs for which user is an Owner ownedfridges = ListTextField(base_field=IntegerField()) # Saving fridge IDs for which user is a friend friendedfridges = ListTextField(base_field=IntegerField()) personalnotes = models.TextField(blank=True, null=True) eff_bgn_ts = models.DateTimeField() eff_end_ts = models.DateTimeField()
class Citizen(models.Model): """ This model save the details of citizen in Paranuara. """ index = models.PositiveIntegerField(primary_key=True, unique=True, blank=False, null=False) _id = models.CharField(max_length=128, unique=True, blank=False) guid = models.CharField(max_length=128, unique=True, blank=False) name = models.CharField(max_length=128, blank=True, null=True) age = models.PositiveIntegerField(default=0, blank=True, null=True) has_died = models.BooleanField(default=False) balance = models.DecimalField(default=0.0, decimal_places=2, max_digits=32) picture = models.CharField(max_length=256, blank=True, null=True) eye_color = models.CharField(max_length=32, blank=True, null=True) gender = models.CharField(max_length=16, blank=True, null=True) company_id = models.ForeignKey(Companies, blank=True, null=True, on_delete=models.DO_NOTHING) email = models.CharField(max_length=32, blank=True, null=True) phone = models.CharField(max_length=32, blank=True, null=True) address = models.CharField(max_length=256, blank=True, null=True) about = models.TextField(blank=True, null=True) registered = models.DateTimeField(blank=True, null=True) greeting = models.TextField(blank=True, null=True) friend = ListTextField(base_field=models.IntegerField(), size=100) # The ListTextField is used to save array directly to database tags = ListTextField(base_field=models.CharField(max_length=32), size=100) fruits = ListTextField(base_field=models.CharField(max_length=32), size=100) vegetables = ListTextField(base_field=models.CharField(max_length=32), size=100) myfriends = models.ManyToManyField('self', related_name='friends', blank=True, through='Friend') def __str__(self): return f"{self.index},{self.name}" @property def get_relations(self): """ The property is defined so that friendship beteen different citizens can be traced. :return: """ return Friend.objects.filter(people_index=self)
class ReferenceCrypto(models.Model): ticker = models.CharField(max_length=8) current_price = models.CharField(max_length=100) current_time = models.CharField(max_length=30, default=datetime.now()) previous_prices = ListTextField( base_field=models.CharField(max_length=15, default='0')) previous_prices_times = ListTextField( base_field=models.CharField(max_length=30, default=datetime.now())) def update_price(self, new_price): self.previous_prices.append(self.current_price) self.previous_prices_times.append(self.current_time) self.current_price = new_price self.current_time = datetime.now()
def test_max_length(self): field = ListTextField( models.CharField(max_length=32), size=3, max_length=32 ) field.clean({'a', 'b', 'c'}, None) with pytest.raises(exceptions.ValidationError) as excinfo: field.clean({'a', 'b', 'c', 'd'}, None) assert ( excinfo.value.messages[0] == 'List contains 4 items, it should contain no more than 3.' )
def test_max_length(self): field = ListTextField( models.CharField(max_length=32), size=3, max_length=32 ) field.clean({'a', 'b', 'c'}, None) with self.assertRaises(exceptions.ValidationError) as cm: field.clean({'a', 'b', 'c', 'd'}, None) self.assertEqual( cm.exception.messages[0], 'List contains 4 items, it should contain no more than 3.' )
class PublicSpeakingEvents(models.Model): title = models.CharField(max_length=256) date = models.DateField() venue = models.CharField(max_length=256) description = models.TextField() youtubelink = models.CharField(max_length=256, blank=True, default='') images = ListTextField(base_field=models.CharField(max_length=512), size=15, blank=True) staticimages = ListTextField(base_field=models.CharField(max_length=512), size=10, blank=True) def __str__(self): return self.title
class User_Profile(models.Model): username = models.OneToOneField(to=CustomUser, on_delete=models.CASCADE, primary_key=True) problems_interested = ListTextField(base_field=IntegerField())
class Voter(models.Model): # this is the general information for all the voters which will be saved into database. voting_number = models.CharField(max_length = 20,default = None,primary_key = True) # upload_to will upload to the specified path for a media directory specified in settings.py user_img = models.ImageField(upload_to = 'images/voters/',default = None) fname = models.CharField(max_length = 20,default = None) mname = models.CharField(max_length = 20,default = None) lname = models.CharField(max_length = 20,default = None) phone_no = models.CharField(max_length = 10,default = None) city = models.CharField(max_length = 15,default = None) district = models.CharField(max_length = 15,default = None) state = models.CharField(max_length = 15,default = None) village = models.CharField(max_length = 15,default = None) taluka = models.CharField(max_length = 15,default = None) address = models.TextField(default = None) dob = models.DateField(default= None) # ListTextField comes from an different module. voted_elections = ListTextField( blank = True, default = [], base_field=models.IntegerField(), size=1000, ) # returns voting number def __str__(self): return self.voting_number # method which will return full name of the voter def getName(self): return (self.fname + ' ' + self.mname + ' ' + self.lname) # method to get DOB def getDOB(self): return str(self.dob)
class User(BaseModel, AbstractBaseUser, PermissionsMixin): """A ORM model for Managing User and Authentication""" # mobile field mobile = models.BigIntegerField(unique=True, null=True) email = models.EmailField(max_length=254, unique=True, null=True, blank=True) full_name = models.CharField(max_length=100, null=True, blank=True) favourites = ListTextField(base_field=models.CharField(max_length=200), size=100, default=None, null=True) city = models.CharField(max_length=100, null=True, blank=True) dob = models.DateField(null=True, blank=True) password = models.CharField(max_length=100) gender = models.CharField(max_length=100, null=True, blank=True) is_staff = models.BooleanField(default=False) is_active = models.BooleanField(default=True) is_superuser = models.BooleanField(default=False) # create objs for management objects = UserManager() # SET email field as username USERNAME_FIELD = 'email' REQUIRED_FIELDS = [] # create a meta class class Meta: db_table = 'user'
class Counter(models.Model): user = models.ForeignKey(User,on_delete=models.CASCADE) counter = ListTextField( base_field = models.IntegerField(), size = 8, default = [0,0,0,0,0,0,0,0] )
class Twitter(models.Model): tweet_id = models.CharField(null=True, blank=True, max_length=200) keyword = models.CharField(null=True, blank=True, max_length=200) username = models.CharField(null=True, blank=True, max_length=200) user_id = models.CharField(null=True, blank=True, max_length=200) content = models.TextField(null=True, blank=True) timestamp = models.CharField(null=True, blank=True, max_length=200) location = models.CharField(null=True, blank=True, max_length=200) hashtag = ListTextField(base_field=models.CharField(null=True, blank=True, max_length=200), size=100) retweet = models.CharField(null=True, blank=True, max_length=200) favourite = models.CharField(null=True, blank=True, max_length=200) source = models.CharField(null=True, blank=True, max_length=200) date_added = models.CharField(null=True, blank=True, max_length=200) in_reply_to = models.CharField(null=True, blank=True, max_length=200) region = models.CharField(null=True, blank=True, max_length=200) numbers = models.TextField(null=True, blank=True) class Meta: verbose_name = _('Tweet data') def __unicode__(self): return str(self.tweet_id) def __str__(self): return str(self.tweet_id)
class IMDB(models.Model): name_director = models.CharField(primary_key=True, max_length=100) name = models.CharField(max_length=100) director = models.CharField(max_length=50) imdb_score = models.FloatField() popularity_99 = models.FloatField() genre = ListTextField(base_field=models.CharField(max_length=25), size=50) # Maximum of 50 ids in list
class AddPlTeamsToDB(models.Model): """A typical class defining a model, derived from the Model class.""" # Fields team_name = models.CharField(max_length=30, help_text='Enter team name (Arsenal)') team_id = models.IntegerField(primary_key=True, help_text='Enter team id (1) ') team_short_name = models.CharField(max_length=3, help_text='Enter team name short (ARS)') date = models.DateField(default=date.today(), help_text='Date entered into database') oppTeamNameList = ListTextField( base_field=models.CharField(max_length=3, help_text='Enter team name short (ARS)'), size=38, # Maximum of 100 ids in list ) oppTeamHomeAwayList = ListTextField( base_field=models.CharField(max_length=1, help_text='H/A'), size=38, # Maximum of 100 ids in list ) oppTeamDifficultyScore = ListTextField( base_field=models.IntegerField(help_text='1-5'), size=38, # Maximum of 100 ids in list ) gw = ListTextField( base_field=models.IntegerField(help_text='1-38'), size=38, # Maximum of 100 ids in list ) # Metadata class Meta: ordering = ['team_id', '-team_name', 'team_short_name'] # Methods def get_absolute_url(self): """Returns the url to access a particular instance of MyModelName.""" return reverse('model-detail-view', args=[str(self.team_id)]) def __str__(self): """String for representing the MyModelName object (in Admin site etc.).""" return f'{self.team_name}, {self.team_id}'
class areas(models.Model): name = models.TextField() description = models.TextField() points = ListTextField( base_field=models.IntegerField(), size=2, ) fill_type = models.ForeignKey(fill_types, on_delete=models.CASCADE)
class NetworkSliceSubnet(models.Model): nssiId = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True) mFIdList = ListTextField(base_field=CharField(max_length=30)) constituentNSSIIdList = models.ManyToManyField('self', blank=True, related_name='constituentNSSIIdList') administrativeState = models.TextField(default='LOCKED') operationalState = models.TextField(default='ENABLED') nsInfo = models.ForeignKey(NsInfo, null=True, on_delete=models.CASCADE, related_name='nsInfo') sliceProfileList = models.ManyToManyField(SliceProfileList, related_name='sliceProfileList')
class Cart(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) products = ListTextField( base_field=IntegerField(), size=100, ) def save(self, *args, **kwargs): super(Cart, self).save(*args, **kwargs)
class TeachersInfo(models.Model): name = models.CharField(max_length=100) institute = models.CharField(max_length=100) subject = models.CharField(max_length=100) college = models.CharField(max_length=100) hsc_year = models.IntegerField(choices=YEAR_CHOICES, default=datetime.datetime.now().year) school = models.CharField(max_length=100) ssc_year = models.IntegerField(choices=YEAR_CHOICES, default=datetime.datetime.now().year) date_of_birth = models.DateField(max_length=8, default=timezone.now) mentoring_subject = ListCharField( base_field=models.CharField(max_length=20), size=6, max_length=(6 * 21) # Maximum of 100 ids in list #default='Test', ) level = models.CharField(max_length=100, choices=LEVEL_CHOICES, default="hsc") deparment = models.CharField(max_length=100, choices=DEPARTMENT_CHOICES, default="Science") summary_of_activites = ListTextField( base_field=models.CharField(max_length=100), size=100 # Maximum of 100 ids in list #default='Test', ) gender = models.CharField(max_length=100, default="") email = models.EmailField(max_length=100) address = models.CharField(max_length=255, help_text='Enter your address') contact_no = models.CharField(max_length=20, help_text='Enter contact no') fb_link = models.CharField(max_length=255, help_text='Enter facebook profile link') linkedin_link = models.CharField(max_length=255, help_text='Enter linkedin profile link') bio = models.TextField() image = models.ImageField(default='default.jpg', upload_to='teachers_pic') def __str__(self): return self.name def save(self, *args, **kwargs): super().save(*args, **kwargs) img = Image.open(self.image.path) if img.height > 418 or img.width > 371: #output_size = (418, 371) img = img.resize((371, 418), Image.ANTIALIAS) # img.thumbnail(output_size) img.save(self.image.path)
class Update(models.Model): app = models.ForeignKey(App, null=True, blank=True, on_delete=models.SET_NULL) features = ListTextField(base_field=models.CharField(max_length=1000), size=5000, blank=True, null=True) date_time = models.DateTimeField(null=True, blank=True, auto_now_add=True)
class Job(models.Model): employer = ForeignKey('user.EmployerProfile', related_name='job', blank=True) field_of_work = CharField(max_length=15, blank=True, null=True) how_time = CharField(max_length=15, blank=True, null=True) abilities_needed = ListTextField( base_field=models.CharField(max_length=20), size=6, )
class CsPost(models.Model): title = models.CharField(max_length=100) author = models.ForeignKey(User, on_delete=models.CASCADE) date_posted = models.DateTimeField(default=timezone.now) language = models.CharField(max_length=100) description = models.TextField() features = ListTextField(base_field=models.CharField(max_length=300)) def __str__(self): return self.title
class Account(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) current_balance = models.CharField(max_length=100, default='0') current_time = models.CharField(max_length=30, default=datetime.now()) previous_balances = ListTextField( base_field=models.CharField(max_length=100, default='0')) previous_balances_times = ListTextField( base_field=models.CharField(max_length=30, default=datetime.now())) def update_balance(self, new_balance): self.previous_balances.append(self.current_balance) self.previous_balances_times.append(self.current_time) self.current_balance = new_balance self.current_time = datetime.now() def calculate_total_invested(self): total_invested = 0 for crypto in user.my_cryptos.all(): total_invested += float(crypto.spent) return total_invested
class Category(HasTimestampModel, SoftDeletionModel): CATEGORY_CHOICES = ( ('game', 'ゲーム'), ('fashion', 'ファッション'), ) name = models.CharField(max_length=255) type = models.CharField(max_length=255, blank=True, null=True, choices=CATEGORY_CHOICES) labels = ListTextField(base_field=models.CharField(max_length=10), blank=True, null=True) def __str__(self): return self.name
class TTP(Model): Tactic = CharField(max_length=100, null=True) # Technique = TextField(max_length=400,null=True) Technique = ListTextField(base_field=CharField(max_length=200), size=200, null=True) TotalTech = IntegerField(blank=True, null=True) FuncTact = CharField(max_length=100, null=True) def __str__(self): return self.Tactic
class OrderSummary(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) items = ListTextField(base_field=CharField(max_length=255)) def add_item(self, t): self.items.append(t) def __str__(self): return user
def test_model_field_formfield_size(self): model_field = ListTextField(models.IntegerField(), size=4) form_field = model_field.formfield() self.assertIsInstance(form_field, SimpleListField) self.assertEqual(form_field.max_length, 4)
def test_model_field_formfield(self): model_field = ListTextField(models.CharField(max_length=27)) form_field = model_field.formfield() self.assertIsInstance(form_field, SimpleListField) self.assertIsInstance(form_field.base_field, forms.CharField) self.assertEqual(form_field.base_field.max_length, 27)
def test_deconstruct_with_size(self): field = ListTextField(models.IntegerField(), size=3, max_length=32) name, path, args, kwargs = field.deconstruct() new = ListTextField(*args, **kwargs) self.assertEqual(new.size, field.size)
def test_deconstruct(self): field = ListTextField(models.IntegerField(), max_length=32) name, path, args, kwargs = field.deconstruct() new = ListTextField(*args, **kwargs) self.assertEqual(type(new.base_field), type(field.base_field))
def test_deconstruct(self): field = ListTextField(models.IntegerField(), max_length=32) name, path, args, kwargs = field.deconstruct() new = ListTextField(*args, **kwargs) assert new.base_field.__class__ == field.base_field.__class__
def test_model_field_formfield(self): model_field = ListTextField(models.CharField(max_length=27)) form_field = model_field.formfield() assert isinstance(form_field, SimpleListField) assert isinstance(form_field.base_field, forms.CharField) assert form_field.base_field.max_length == 27
def test_model_field_formfield_size(self): model_field = ListTextField(models.IntegerField(), size=4) form_field = model_field.formfield() assert isinstance(form_field, SimpleListField) assert form_field.max_length == 4