<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Handbook Troggle Data Model</title> <link rel="stylesheet" type="text/css" href="../../css/main2.css" /> </head> <body><style>body { background: #fff url(/images/style/bg-system.png) repeat-x 0 0 }</style> <h2 id="tophead">CUCC Expedition Handbook - troggle</h2> <h1>Troggle Data Model (python)</h1> <h3>Troggle data architecture</h3> Auto-generated on 3 April 2020. (Omitting all the 'Meta' sub-classes.)<code><pre><span style="color: green"> # This is an auto-generated Django model module. # You'll have to do the following manually to clean this up: # * Rearrange models' order # * Make sure each model has one field with primary_key=True # * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table # Feel free to rename the models, but don't rename db_table values or field names. # # Also note: You'll have to insert the output of 'django-admin.py sqlcustom [app_label]' # into your database.</span> from __future__ import unicode_literals from django.db import models <span style="color: lime">class</span> <span style="color:blue"><b>CoreArea</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() short_name = models.CharField(max_length=100) name = models.CharField(max_length=200, blank=True) description = models.TextField(blank=True) <span style="color:blue">parent</span> = models.<span style="color:blue">ForeignKey</span> ('self', blank=True, null=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreCave</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() official_name = models.CharField(max_length=160) kataster_code = models.CharField(max_length=20, blank=True) kataster_number = models.CharField(max_length=10, blank=True) unofficial_number = models.CharField(max_length=60, blank=True) explorers = models.TextField(blank=True) underground_description = models.TextField(blank=True) equipment = models.TextField(blank=True) references = models.TextField(blank=True) survey = models.TextField(blank=True) kataster_status = models.TextField(blank=True) underground_centre_line = models.TextField(blank=True) notes = models.TextField(blank=True) length = models.CharField(max_length=100, blank=True) depth = models.CharField(max_length=100, blank=True) extent = models.CharField(max_length=100, blank=True) survex_file = models.CharField(max_length=100, blank=True) description_file = models.CharField(max_length=200, blank=True) url = models.CharField(max_length=200, blank=True) filename = models.CharField(max_length=200) <span style="color: lime">class</span> <span style="color:blue"><b>CoreCaveArea</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> cave_id = models.IntegerField() <span style="color:blue">area</span> = models.<span style="color:blue">ForeignKey</span> (CoreArea) <span style="color: lime">class</span> <span style="color:blue"><b>CoreCaveandentrance</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> cave_id = models.IntegerField() entrance_id = models.IntegerField() entrance_letter = models.CharField(max_length=20, blank=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreCavedescription</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() short_name = models.CharField(unique=True, max_length=50) long_name = models.CharField(max_length=200, blank=True) description = models.TextField(blank=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreCavedescriptionLinkedEntrances</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> cavedescription_id = models.IntegerField() <span style="color:blue">entrance</span> = models.<span style="color:blue">ForeignKey</span> ('CoreEntrance') <span style="color: lime">class</span> <span style="color:blue"><b>CoreCavedescriptionLinkedQms</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> cavedescription_id = models.IntegerField() qm_id = models.IntegerField() <span style="color: lime">class</span> <span style="color:blue"><b>CoreCavedescriptionLinkedSubcaves</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> cavedescription_id = models.IntegerField() newsubcave_id = models.IntegerField() <span style="color: lime">class</span> <span style="color:blue"><b>CoreCaveslug</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> cave_id = models.IntegerField() slug = models.CharField(unique=True, max_length=50) primary = models.BooleanField() <span style="color: lime">class</span> <span style="color:blue"><b>CoreDataissue</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() date = models.DateTimeField() parser = models.CharField(max_length=50, blank=True) message = models.CharField(max_length=400, blank=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreDphoto</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() caption = models.CharField(max_length=1000, blank=True) <span style="color:blue">contains_logbookentry</span> = models.<span style="color:blue">ForeignKey</span> ('CoreLogbookentry', blank=True, null=True) file = models.CharField(max_length=100) is_mugshot = models.BooleanField() <span style="color:blue">contains_cave</span> = models.<span style="color:blue">ForeignKey</span> (CoreCave, blank=True, null=True) <span style="color:blue">contains_entrance</span> = models.<span style="color:blue">ForeignKey</span> ('CoreEntrance', blank=True, null=True) <span style="color:blue">nearest_qm</span> = models.<span style="color:blue">ForeignKey</span> ('CoreQm', db_column='nearest_QM_id', blank=True, null=True) <span style="color: green"># Field name made lowercase.</span> lon_utm = models.FloatField(blank=True, null=True) lat_utm = models.FloatField(blank=True, null=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreDphotoContainsPerson</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> dphoto_id = models.IntegerField() <span style="color:blue">person</span> = models.<span style="color:blue">ForeignKey</span> ('CorePerson') <span style="color: lime">class</span> <span style="color:blue"><b>CoreEntrance</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() name = models.CharField(max_length=100, blank=True) entrance_description = models.TextField(blank=True) explorers = models.TextField(blank=True) map_description = models.TextField(blank=True) location_description = models.TextField(blank=True) approach = models.TextField(blank=True) underground_description = models.TextField(blank=True) photo = models.TextField(blank=True) marking = models.CharField(max_length=2) marking_comment = models.TextField(blank=True) findability = models.CharField(max_length=1, blank=True) findability_description = models.TextField(blank=True) alt = models.TextField(blank=True) northing = models.TextField(blank=True) easting = models.TextField(blank=True) tag_station = models.TextField(blank=True) exact_station = models.TextField(blank=True) other_station = models.TextField(blank=True) other_description = models.TextField(blank=True) bearings = models.TextField(blank=True) url = models.CharField(max_length=200, blank=True) filename = models.CharField(max_length=200) cached_primary_slug = models.CharField(max_length=200, blank=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreEntranceslug</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> entrance_id = models.IntegerField() slug = models.CharField(unique=True, max_length=50) primary = models.BooleanField() <span style="color: lime">class</span> <span style="color:blue"><b>CoreExpedition</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() year = models.CharField(unique=True, max_length=20) name = models.CharField(max_length=100) <span style="color: lime">class</span> <span style="color:blue"><b>CoreExpeditionday</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() <span style="color:blue">expedition</span> = models.<span style="color:blue">ForeignKey</span> (CoreExpedition) date = models.DateField() <span style="color: lime">class</span> <span style="color:blue"><b>CoreLogbookentry</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() date = models.DateField() <span style="color:blue">expeditionday</span> = models.<span style="color:blue">ForeignKey</span> (CoreExpeditionday, blank=True, null=True) <span style="color:blue">expedition</span> = models.<span style="color:blue">ForeignKey</span> (CoreExpedition, blank=True, null=True) title = models.CharField(max_length=200) cave_slug = models.CharField(max_length=50) place = models.CharField(max_length=100, blank=True) text = models.TextField() slug = models.CharField(max_length=50) filename = models.CharField(max_length=200, blank=True) entry_type = models.CharField(max_length=50, blank=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreNewsubcave</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() name = models.CharField(unique=True, max_length=200) <span style="color: lime">class</span> <span style="color:blue"><b>CoreOthercavename</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() name = models.CharField(max_length=160) <span style="color:blue">cave</span> = models.<span style="color:blue">ForeignKey</span> (CoreCave) <span style="color: lime">class</span> <span style="color:blue"><b>CorePerson</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() first_name = models.CharField(max_length=100) last_name = models.CharField(max_length=100) fullname = models.CharField(max_length=200) is_vfho = models.BooleanField() mug_shot = models.CharField(max_length=100, blank=True) blurb = models.TextField(blank=True) orderref = models.CharField(max_length=200) user_id = models.IntegerField(unique=True, blank=True, null=True) <span style="color: lime">class</span> <span style="color:blue"><b>CorePersonexpedition</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() <span style="color:blue">expedition</span> = models.<span style="color:blue">ForeignKey</span> (CoreExpedition) <span style="color:blue">person</span> = models.<span style="color:blue">ForeignKey</span> (CorePerson) slugfield = models.CharField(max_length=50, blank=True) is_guest = models.BooleanField() expo_committee_position = models.CharField(max_length=200, blank=True) nickname = models.CharField(max_length=100, blank=True) <span style="color: lime">class</span> <span style="color:blue"><b>CorePersontrip</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() <span style="color:blue">personexpedition</span> = models.<span style="color:blue">ForeignKey</span> (CorePersonexpedition, blank=True, null=True) time_underground = models.FloatField() <span style="color:blue">logbook_entry</span> = models.<span style="color:blue">ForeignKey</span> (CoreLogbookentry) is_logbook_entry_author = models.BooleanField() <span style="color: lime">class</span> <span style="color:blue"><b>CoreQm</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() <span style="color:blue">found_by</span> = models.<span style="color:blue">ForeignKey</span> (CoreLogbookentry, blank=True, null=True) <span style="color:blue">ticked_off_by</span> = models.<span style="color:blue">ForeignKey</span> (CoreLogbookentry, blank=True, null=True) number = models.IntegerField() grade = models.CharField(max_length=1) location_description = models.TextField() nearest_station_description = models.CharField(max_length=400, blank=True) nearest_station_name = models.CharField(max_length=200, blank=True) <span style="color:blue">nearest_station</span> = models.<span style="color:blue">ForeignKey</span> ('CoreSurvexstation', blank=True, null=True) area = models.CharField(max_length=100, blank=True) completion_description = models.TextField(blank=True) comment = models.TextField(blank=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreScannedimage</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() file = models.CharField(max_length=100) <span style="color:blue">scanned_by</span> = models.<span style="color:blue">ForeignKey</span> (CorePerson, blank=True, null=True) scanned_on = models.DateField(blank=True, null=True) survey_id = models.IntegerField() contents = models.CharField(max_length=20) number_in_wallet = models.IntegerField(blank=True, null=True) lon_utm = models.FloatField(blank=True, null=True) lat_utm = models.FloatField(blank=True, null=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvexblock</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> name = models.CharField(max_length=100) <span style="color:blue">parent</span> = models.<span style="color:blue">ForeignKey</span> ('self', blank=True, null=True) text = models.TextField() cave_id = models.IntegerField(blank=True, null=True) date = models.DateField(blank=True, null=True) expeditionday_id = models.IntegerField(blank=True, null=True) expedition_id = models.IntegerField(blank=True, null=True) <span style="color:blue">survexfile</span> = models.<span style="color:blue">ForeignKey</span> ('CoreSurvexfile', blank=True, null=True) begin_char = models.IntegerField() survexpath = models.CharField(max_length=200) survexscansfolder_id = models.IntegerField(blank=True, null=True) totalleglength = models.FloatField() <span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvexdirectory</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> path = models.CharField(max_length=200) cave_id = models.IntegerField(blank=True, null=True) primarysurvexfile_id = models.IntegerField(blank=True, null=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvexequate</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> cave_id = models.IntegerField(blank=True, null=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvexfile</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> path = models.CharField(max_length=200) <span style="color:blue">survexdirectory</span> = models.<span style="color:blue">ForeignKey</span> (CoreSurvexdirectory, blank=True, null=True) cave_id = models.IntegerField(blank=True, null=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvexleg</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> block_id = models.IntegerField() <span style="color:blue">stationfrom</span> = models.<span style="color:blue">ForeignKey</span> ('CoreSurvexstation') <span style="color:blue">stationto</span> = models.<span style="color:blue">ForeignKey</span> ('CoreSurvexstation') tape = models.FloatField() compass = models.FloatField() clino = models.FloatField() <span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvexpersonrole</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> <span style="color:blue">survexblock</span> = models.<span style="color:blue">ForeignKey</span> (CoreSurvexblock) nrole = models.CharField(max_length=200, blank=True) personname = models.CharField(max_length=100) person_id = models.IntegerField(blank=True, null=True) personexpedition_id = models.IntegerField(blank=True, null=True) persontrip_id = models.IntegerField(blank=True, null=True) expeditionday_id = models.IntegerField(blank=True, null=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvexscansfolder</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> fpath = models.CharField(max_length=200) walletname = models.CharField(max_length=200) <span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvexscansingle</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> ffile = models.CharField(max_length=200) name = models.CharField(max_length=200) <span style="color:blue">survexscansfolder</span> = models.<span style="color:blue">ForeignKey</span> (CoreSurvexscansfolder, blank=True, null=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvexstation</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> name = models.CharField(max_length=100) block_id = models.IntegerField() <span style="color:blue">equate</span> = models.<span style="color:blue">ForeignKey</span> (CoreSurvexequate, blank=True, null=True) x = models.FloatField(blank=True, null=True) y = models.FloatField(blank=True, null=True) z = models.FloatField(blank=True, null=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvextitle</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> <span style="color:blue">survexblock</span> = models.<span style="color:blue">ForeignKey</span> (CoreSurvexblock) title = models.CharField(max_length=200) cave_id = models.IntegerField(blank=True, null=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreSurvey</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> new_since_parsing = models.BooleanField() non_public = models.BooleanField() <span style="color:blue">expedition</span> = models.<span style="color:blue">ForeignKey</span> (CoreExpedition) wallet_number = models.IntegerField(blank=True, null=True) wallet_letter = models.CharField(max_length=1, blank=True) comments = models.TextField(blank=True) location = models.CharField(max_length=400, blank=True) <span style="color:blue">subcave</span> = models.<span style="color:blue">ForeignKey</span> (CoreNewsubcave, blank=True, null=True) <span style="color:blue">survex_block</span> = models.<span style="color:blue">ForeignKey</span> (CoreSurvexblock, unique=True, blank=True, null=True) <span style="color:blue">logbook_entry</span> = models.<span style="color:blue">ForeignKey</span> (CoreLogbookentry) centreline_printed_on = models.DateField(blank=True, null=True) <span style="color:blue">centreline_printed_by</span> = models.<span style="color:blue">ForeignKey</span> (CorePerson, blank=True, null=True) tunnel_file = models.CharField(max_length=100, blank=True) <span style="color:blue">tunnel_main_sketch</span> = models.<span style="color:blue">ForeignKey</span> ('self', blank=True, null=True) integrated_into_main_sketch_on = models.DateField(blank=True, null=True) <span style="color:blue">integrated_into_main_sketch_by</span> = models.<span style="color:blue">ForeignKey</span> (CorePerson, blank=True, null=True) rendered_image = models.CharField(max_length=100, blank=True) <span style="color: lime">class</span> <span style="color:blue"><b>CoreTunnelfile</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> tunnelpath = models.CharField(max_length=200) tunnelname = models.CharField(max_length=200) bfontcolours = models.BooleanField() filesize = models.IntegerField() npaths = models.IntegerField() <span style="color: lime">class</span> <span style="color:blue"><b>CoreTunnelfileSurvexblocks</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> tunnelfile_id = models.IntegerField() <span style="color:blue">survexblock</span> = models.<span style="color:blue">ForeignKey</span> (CoreSurvexblock) <span style="color: lime">class</span> <span style="color:blue"><b>CoreTunnelfileSurvexscans</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> tunnelfile_id = models.IntegerField() <span style="color:blue">survexscansingle</span> = models.<span style="color:blue">ForeignKey</span> (CoreSurvexscansingle) <span style="color: lime">class</span> <span style="color:blue"><b>CoreTunnelfileSurvexscansfolders</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> tunnelfile_id = models.IntegerField() <span style="color:blue">survexscansfolder</span> = models.<span style="color:blue">ForeignKey</span> (CoreSurvexscansfolder) <span style="color: lime">class</span> <span style="color:blue"><b>CoreTunnelfileSurvextitles</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> tunnelfile_id = models.IntegerField() <span style="color:blue">survextitle</span> = models.<span style="color:blue">ForeignKey</span> (CoreSurvextitle) <span style="color: lime">class</span> <span style="color:blue"><b>CoreTunnelfileTunnelcontains</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> from_tunnelfile_id = models.IntegerField() to_tunnelfile_id = models.IntegerField() <span style="color: lime">class</span> <span style="color:blue"><b>DjangoAdminLog</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> action_time = models.DateTimeField() object_id = models.TextField(blank=True) object_repr = models.CharField(max_length=200) action_flag = models.PositiveSmallIntegerField() change_message = models.TextField() <span style="color:blue">content_type</span> = models.<span style="color:blue">ForeignKey</span> ('DjangoContentType', blank=True, null=True) <span style="color:blue">user</span> = models.<span style="color:blue">ForeignKey</span> (AuthUser) <span style="color: lime">class</span> <span style="color:blue"><b>DjangoContentType</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> name = models.CharField(max_length=100) app_label = models.CharField(max_length=100) model = models.CharField(max_length=100) <span style="color: lime">class</span> <span style="color:blue"><b>DjangoMigrations</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> app = models.CharField(max_length=255) name = models.CharField(max_length=255) applied = models.DateTimeField() <span style="color: lime">class</span> <span style="color:blue"><b>DjangoRedirect</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> <span style="color:blue">site</span> = models.<span style="color:blue">ForeignKey</span> ('DjangoSite') old_path = models.CharField(max_length=200) new_path = models.CharField(max_length=200) <span style="color: lime">class</span> <span style="color:blue"><b>DjangoSession</b></span>(models.Model): session_key = models.CharField(<span style="color: magenta">primary_key</span> =True, max_length=40) session_data = models.TextField() expire_date = models.DateTimeField() <span style="color: lime">class</span> <span style="color:blue"><b>DjangoSite</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> domain = models.CharField(max_length=100) name = models.CharField(max_length=50) <span style="color: lime">class</span> <span style="color:blue"><b>FlatpagesEntranceredirect</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> originalurl = models.CharField(db_column='originalURL', max_length=200) <span style="color: green"># Field name made lowercase.</span> <span style="color:blue">entrance</span> = models.<span style="color:blue">ForeignKey</span> (CoreEntrance) <span style="color: lime">class</span> <span style="color:blue"><b>FlatpagesRedirect</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> originalurl = models.CharField(db_column='originalURL', unique=True, max_length=200) <span style="color: green"># Field name made lowercase.</span> newurl = models.CharField(db_column='newURL', max_length=200) <span style="color: green"># Field name made lowercase.</span> <span style="color: lime">class</span> <span style="color:blue"><b>RegistrationRegistrationprofile</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> activation_key = models.CharField(max_length=40) <span style="color:blue">user</span> = models.<span style="color:blue">ForeignKey</span> (AuthUser, unique=True) <span style="color: lime">class</span> <span style="color:blue"><b>AuthGroup</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> name = models.CharField(unique=True, max_length=80) <span style="color: lime">class</span> <span style="color:blue"><b>AuthGroupPermissions</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> <span style="color:blue">group</span> = models.<span style="color:blue">ForeignKey</span>(AuthGroup) <span style="color:blue"><span style="color:blue">permission</span></span> = models.<span style="color:blue">ForeignKey</span>('AuthPermission') <span style="color: lime">class</span> <span style="color:blue"><b>AuthPermission</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> name = models.CharField(max_length=50) <span style="color:blue">content_type</span> = models.<span style="color:blue">ForeignKey</span>('DjangoContentType') codename = models.CharField(max_length=100) <span style="color: lime">class</span> <span style="color:blue"><b>AuthUser</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> password = models.CharField(max_length=128) last_login = models.DateTimeField() is_superuser = models.BooleanField() username = models.CharField(unique=True, max_length=30) first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) email = models.CharField(max_length=75) is_staff = models.BooleanField() is_active = models.BooleanField() date_joined = models.DateTimeField() <span style="color: lime">class</span> <span style="color:blue"><b>AuthUserGroups</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> <span style="color:blue">user</span> = models.<span style="color:blue">ForeignKey</span> (AuthUser) <span style="color:blue">group</span> = models.<span style="color:blue">ForeignKey</span> (AuthGroup) <span style="color: lime">class</span> <span style="color:blue"><b>AuthUserUserPermissions</b></span>(models.Model): id = models.IntegerField(<span style="color: magenta">primary_key</span> =True) <span style="color: green"># AutoField?</span> <span style="color:blue">user</span> = models.<span style="color:blue">ForeignKey</span> (AuthUser) <span style="color:blue">permission</span> = models.<span style="color:blue">ForeignKey</span> (AuthPermission) </pre></code> <hr /> Return to: <a href="trogarch.html">Troggle architecture</a><br /> <hr /> </body> </html>