Merge lp:~mhall119/ubuntu-accomplishments-web/add-south into lp:ubuntu-accomplishments-web

Proposed by Michael Hall
Status: Merged
Merged at revision: 228
Proposed branch: lp:~mhall119/ubuntu-accomplishments-web/add-south
Merge into: lp:ubuntu-accomplishments-web
Prerequisite: lp:~mhall119/ubuntu-accomplishments-web/local-settings
Diff against target: 432 lines (+373/-1)
6 files modified
README.md (+2/-1)
common/migrations/0001_initial.py (+273/-0)
gallery/migrations/0001_initial.py (+20/-0)
pip.txt (+1/-0)
settings.py (+1/-0)
users/migrations/0001_initial.py (+76/-0)
To merge this branch: bzr merge lp:~mhall119/ubuntu-accomplishments-web/add-south
Reviewer Review Type Date Requested Status
ubuntu-accomplishments-web-editor-drivers Pending
Review via email: mp+129994@code.launchpad.net

Description of the change

Adds dependency on South for database migration. Includes initial migration scripts for the existing models.

To post a comment you must log in.
Revision history for this message
Janos Gyerik (janos-gyerik) wrote :

Thanks a lot Mike, both very nice branches!

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'README.md'
--- README.md 2012-10-16 21:48:22 +0000
+++ README.md 2012-10-16 21:48:22 +0000
@@ -14,11 +14,12 @@
1414
153. Install required python modules153. Install required python modules
1616
17 sudo apt-get install python-django-openid-auth17 sudo apt-get install python-django-openid-auth python-django-south
1818
194. Create database (sqlite3), and admin account194. Create database (sqlite3), and admin account
2020
21 ./manage.py syncdb --noinput21 ./manage.py syncdb --noinput
22 ./manage.py migrate --noinput
2223
235. Import accomplishments into Django's database245. Import accomplishments into Django's database
2425
2526
=== added directory 'common/migrations'
=== added file 'common/migrations/0001_initial.py'
--- common/migrations/0001_initial.py 1970-01-01 00:00:00 +0000
+++ common/migrations/0001_initial.py 2012-10-16 21:48:22 +0000
@@ -0,0 +1,273 @@
1# -*- coding: utf-8 -*-
2import datetime
3from south.db import db
4from south.v2 import SchemaMigration
5from django.db import models
6
7
8class Migration(SchemaMigration):
9
10 def forwards(self, orm):
11 # Adding model 'Lang'
12 db.create_table('common_lang', (
13 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
14 ('locale_name', self.gf('django.db.models.fields.SlugField')(max_length=7)),
15 ('language_code', self.gf('django.db.models.fields.SlugField')(max_length=7)),
16 ('display_name', self.gf('django.db.models.fields.CharField')(max_length=50)),
17 ))
18 db.send_create_signal('common', ['Lang'])
19
20 # Adding unique constraint on 'Lang', fields ['locale_name', 'language_code']
21 db.create_unique('common_lang', ['locale_name', 'language_code'])
22
23 # Adding model 'Collection'
24 db.create_table('common_collection', (
25 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
26 ('descriptor', self.gf('django.db.models.fields.CharField')(unique=True, max_length=256)),
27 ('label', self.gf('django.db.models.fields.CharField')(max_length=128)),
28 ))
29 db.send_create_signal('common', ['Collection'])
30
31 # Adding model 'Category'
32 db.create_table('common_category', (
33 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
34 ('collection', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['common.Collection'])),
35 ('label', self.gf('django.db.models.fields.CharField')(max_length=50)),
36 ))
37 db.send_create_signal('common', ['Category'])
38
39 # Adding model 'Icon'
40 db.create_table('common_icon', (
41 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
42 ('collection', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['common.Collection'])),
43 ('filename', self.gf('django.db.models.fields.CharField')(max_length=100)),
44 ))
45 db.send_create_signal('common', ['Icon'])
46
47 # Adding model 'Accomplishment'
48 db.create_table('common_accomplishment', (
49 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
50 ('descriptor', self.gf('django.db.models.fields.CharField')(unique=True, max_length=512)),
51 ('collection', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['common.Collection'])),
52 ('accomid', self.gf('django.db.models.fields.CharField')(unique=True, max_length=100)),
53 ('needs_information', self.gf('django.db.models.fields.TextField')()),
54 ('icon', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['common.Icon'])),
55 ('needs_signing', self.gf('django.db.models.fields.BooleanField')(default=False)),
56 ))
57 db.send_create_signal('common', ['Accomplishment'])
58
59 # Adding unique constraint on 'Accomplishment', fields ['collection', 'descriptor']
60 db.create_unique('common_accomplishment', ['collection_id', 'descriptor'])
61
62 # Adding M2M table for field categories on 'Accomplishment'
63 db.create_table('common_accomplishment_categories', (
64 ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
65 ('accomplishment', models.ForeignKey(orm['common.accomplishment'], null=False)),
66 ('category', models.ForeignKey(orm['common.category'], null=False))
67 ))
68 db.create_unique('common_accomplishment_categories', ['accomplishment_id', 'category_id'])
69
70 # Adding M2M table for field depends on 'Accomplishment'
71 db.create_table('common_accomplishment_depends', (
72 ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
73 ('from_accomplishment', models.ForeignKey(orm['common.accomplishment'], null=False)),
74 ('to_accomplishment', models.ForeignKey(orm['common.accomplishment'], null=False))
75 ))
76 db.create_unique('common_accomplishment_depends', ['from_accomplishment_id', 'to_accomplishment_id'])
77
78 # Adding model 'AccomplishmentTranslation'
79 db.create_table('common_accomplishmenttranslation', (
80 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
81 ('accomplishment', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['common.Accomplishment'])),
82 ('lang', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['common.Lang'])),
83 ('title', self.gf('django.db.models.fields.CharField')(max_length=128)),
84 ('description', self.gf('django.db.models.fields.CharField')(max_length=512)),
85 ('summary', self.gf('django.db.models.fields.TextField')()),
86 ('steps', self.gf('django.db.models.fields.TextField')()),
87 ('links', self.gf('django.db.models.fields.TextField')(default='', blank=True)),
88 ('helpres', self.gf('django.db.models.fields.TextField')(default='', blank=True)),
89 ('tips', self.gf('django.db.models.fields.TextField')(default='', blank=True)),
90 ('pitfalls', self.gf('django.db.models.fields.TextField')(default='', blank=True)),
91 ))
92 db.send_create_signal('common', ['AccomplishmentTranslation'])
93
94 # Adding unique constraint on 'AccomplishmentTranslation', fields ['accomplishment', 'lang']
95 db.create_unique('common_accomplishmenttranslation', ['accomplishment_id', 'lang_id'])
96
97 # Adding model 'AccomplishmentProposal'
98 db.create_table('common_accomplishmentproposal', (
99 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
100 ('descriptor', self.gf('django.db.models.fields.CharField')(unique=True, max_length=512)),
101 ('collection', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['common.Collection'])),
102 ('accomid', self.gf('django.db.models.fields.CharField')(unique=True, max_length=100)),
103 ('needs_information', self.gf('django.db.models.fields.TextField')()),
104 ('icon', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['common.Icon'])),
105 ('needs_signing', self.gf('django.db.models.fields.BooleanField')(default=False)),
106 ('accomplishment', self.gf('django.db.models.fields.related.ForeignKey')(related_name='proposals', to=orm['common.Accomplishment'])),
107 ('user', self.gf('django.db.models.fields.CharField')(max_length=50)),
108 ('rejected_date', self.gf('django.db.models.fields.DateField')(null=True)),
109 ))
110 db.send_create_signal('common', ['AccomplishmentProposal'])
111
112 # Adding unique constraint on 'AccomplishmentProposal', fields ['collection', 'descriptor']
113 db.create_unique('common_accomplishmentproposal', ['collection_id', 'descriptor'])
114
115 # Adding M2M table for field categories on 'AccomplishmentProposal'
116 db.create_table('common_accomplishmentproposal_categories', (
117 ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
118 ('accomplishmentproposal', models.ForeignKey(orm['common.accomplishmentproposal'], null=False)),
119 ('category', models.ForeignKey(orm['common.category'], null=False))
120 ))
121 db.create_unique('common_accomplishmentproposal_categories', ['accomplishmentproposal_id', 'category_id'])
122
123 # Adding M2M table for field depends on 'AccomplishmentProposal'
124 db.create_table('common_accomplishmentproposal_depends', (
125 ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
126 ('accomplishmentproposal', models.ForeignKey(orm['common.accomplishmentproposal'], null=False)),
127 ('accomplishment', models.ForeignKey(orm['common.accomplishment'], null=False))
128 ))
129 db.create_unique('common_accomplishmentproposal_depends', ['accomplishmentproposal_id', 'accomplishment_id'])
130
131 # Adding model 'TrophyCache'
132 db.create_table('common_trophycache', (
133 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
134 ('share_dirname', self.gf('django.db.models.fields.CharField')(max_length=256)),
135 ('accomplishment', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['common.Accomplishment'])),
136 ('date_accomplished', self.gf('django.db.models.fields.DateTimeField')()),
137 ))
138 db.send_create_signal('common', ['TrophyCache'])
139
140 # Adding unique constraint on 'TrophyCache', fields ['share_dirname', 'accomplishment']
141 db.create_unique('common_trophycache', ['share_dirname', 'accomplishment_id'])
142
143
144 def backwards(self, orm):
145 # Removing unique constraint on 'TrophyCache', fields ['share_dirname', 'accomplishment']
146 db.delete_unique('common_trophycache', ['share_dirname', 'accomplishment_id'])
147
148 # Removing unique constraint on 'AccomplishmentProposal', fields ['collection', 'descriptor']
149 db.delete_unique('common_accomplishmentproposal', ['collection_id', 'descriptor'])
150
151 # Removing unique constraint on 'AccomplishmentTranslation', fields ['accomplishment', 'lang']
152 db.delete_unique('common_accomplishmenttranslation', ['accomplishment_id', 'lang_id'])
153
154 # Removing unique constraint on 'Accomplishment', fields ['collection', 'descriptor']
155 db.delete_unique('common_accomplishment', ['collection_id', 'descriptor'])
156
157 # Removing unique constraint on 'Lang', fields ['locale_name', 'language_code']
158 db.delete_unique('common_lang', ['locale_name', 'language_code'])
159
160 # Deleting model 'Lang'
161 db.delete_table('common_lang')
162
163 # Deleting model 'Collection'
164 db.delete_table('common_collection')
165
166 # Deleting model 'Category'
167 db.delete_table('common_category')
168
169 # Deleting model 'Icon'
170 db.delete_table('common_icon')
171
172 # Deleting model 'Accomplishment'
173 db.delete_table('common_accomplishment')
174
175 # Removing M2M table for field categories on 'Accomplishment'
176 db.delete_table('common_accomplishment_categories')
177
178 # Removing M2M table for field depends on 'Accomplishment'
179 db.delete_table('common_accomplishment_depends')
180
181 # Deleting model 'AccomplishmentTranslation'
182 db.delete_table('common_accomplishmenttranslation')
183
184 # Deleting model 'AccomplishmentProposal'
185 db.delete_table('common_accomplishmentproposal')
186
187 # Removing M2M table for field categories on 'AccomplishmentProposal'
188 db.delete_table('common_accomplishmentproposal_categories')
189
190 # Removing M2M table for field depends on 'AccomplishmentProposal'
191 db.delete_table('common_accomplishmentproposal_depends')
192
193 # Deleting model 'TrophyCache'
194 db.delete_table('common_trophycache')
195
196
197 models = {
198 'common.accomplishment': {
199 'Meta': {'unique_together': "(('collection', 'descriptor'),)", 'object_name': 'Accomplishment'},
200 'accomid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}),
201 'categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['common.Category']", 'null': 'True', 'blank': 'True'}),
202 'collection': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['common.Collection']"}),
203 'depends': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['common.Accomplishment']", 'null': 'True', 'blank': 'True'}),
204 'descriptor': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}),
205 'icon': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['common.Icon']"}),
206 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
207 'needs_information': ('django.db.models.fields.TextField', [], {}),
208 'needs_signing': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
209 },
210 'common.accomplishmentproposal': {
211 'Meta': {'unique_together': "(('collection', 'descriptor'),)", 'object_name': 'AccomplishmentProposal'},
212 'accomid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}),
213 'accomplishment': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'proposals'", 'to': "orm['common.Accomplishment']"}),
214 'categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['common.Category']", 'null': 'True', 'blank': 'True'}),
215 'collection': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['common.Collection']"}),
216 'depends': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['common.Accomplishment']", 'null': 'True', 'blank': 'True'}),
217 'descriptor': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}),
218 'icon': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['common.Icon']"}),
219 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
220 'needs_information': ('django.db.models.fields.TextField', [], {}),
221 'needs_signing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
222 'rejected_date': ('django.db.models.fields.DateField', [], {'null': 'True'}),
223 'user': ('django.db.models.fields.CharField', [], {'max_length': '50'})
224 },
225 'common.accomplishmenttranslation': {
226 'Meta': {'unique_together': "(('accomplishment', 'lang'),)", 'object_name': 'AccomplishmentTranslation'},
227 'accomplishment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['common.Accomplishment']"}),
228 'description': ('django.db.models.fields.CharField', [], {'max_length': '512'}),
229 'helpres': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
230 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
231 'lang': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['common.Lang']"}),
232 'links': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
233 'pitfalls': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
234 'steps': ('django.db.models.fields.TextField', [], {}),
235 'summary': ('django.db.models.fields.TextField', [], {}),
236 'tips': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
237 'title': ('django.db.models.fields.CharField', [], {'max_length': '128'})
238 },
239 'common.category': {
240 'Meta': {'ordering': "('label',)", 'object_name': 'Category'},
241 'collection': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['common.Collection']"}),
242 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
243 'label': ('django.db.models.fields.CharField', [], {'max_length': '50'})
244 },
245 'common.collection': {
246 'Meta': {'object_name': 'Collection'},
247 'descriptor': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'}),
248 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
249 'label': ('django.db.models.fields.CharField', [], {'max_length': '128'})
250 },
251 'common.icon': {
252 'Meta': {'object_name': 'Icon'},
253 'collection': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['common.Collection']"}),
254 'filename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
255 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
256 },
257 'common.lang': {
258 'Meta': {'ordering': "('locale_name',)", 'unique_together': "(('locale_name', 'language_code'),)", 'object_name': 'Lang'},
259 'display_name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
260 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
261 'language_code': ('django.db.models.fields.SlugField', [], {'max_length': '7'}),
262 'locale_name': ('django.db.models.fields.SlugField', [], {'max_length': '7'})
263 },
264 'common.trophycache': {
265 'Meta': {'unique_together': "(('share_dirname', 'accomplishment'),)", 'object_name': 'TrophyCache'},
266 'accomplishment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['common.Accomplishment']"}),
267 'date_accomplished': ('django.db.models.fields.DateTimeField', [], {}),
268 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
269 'share_dirname': ('django.db.models.fields.CharField', [], {'max_length': '256'})
270 }
271 }
272
273 complete_apps = ['common']
0\ No newline at end of file274\ No newline at end of file
1275
=== added file 'common/migrations/__init__.py'
=== added directory 'gallery/migrations'
=== added file 'gallery/migrations/0001_initial.py'
--- gallery/migrations/0001_initial.py 1970-01-01 00:00:00 +0000
+++ gallery/migrations/0001_initial.py 2012-10-16 21:48:22 +0000
@@ -0,0 +1,20 @@
1# -*- coding: utf-8 -*-
2import datetime
3from south.db import db
4from south.v2 import SchemaMigration
5from django.db import models
6
7
8class Migration(SchemaMigration):
9
10 def forwards(self, orm):
11 pass
12
13 def backwards(self, orm):
14 pass
15
16 models = {
17
18 }
19
20 complete_apps = ['gallery']
0\ No newline at end of file21\ No newline at end of file
122
=== added file 'gallery/migrations/__init__.py'
=== modified file 'pip.txt'
--- pip.txt 2012-06-25 05:15:35 +0000
+++ pip.txt 2012-10-16 21:48:22 +0000
@@ -5,3 +5,4 @@
5django_openid_auth>=0.45django_openid_auth>=0.4
6pygpgme==0.26pygpgme==0.2
7python-openid==2.2.57python-openid==2.2.5
8South>=0.7
89
=== modified file 'settings.py'
--- settings.py 2012-10-16 21:48:22 +0000
+++ settings.py 2012-10-16 21:48:22 +0000
@@ -145,6 +145,7 @@
145 # Uncomment the next line to enable admin documentation:145 # Uncomment the next line to enable admin documentation:
146 # 'django.contrib.admindocs',146 # 'django.contrib.admindocs',
147 'django_openid_auth',147 'django_openid_auth',
148 'south',
148)149)
149150
150# A sample logging configuration. The only tangible logging151# A sample logging configuration. The only tangible logging
151152
=== added directory 'users/migrations'
=== added file 'users/migrations/0001_initial.py'
--- users/migrations/0001_initial.py 1970-01-01 00:00:00 +0000
+++ users/migrations/0001_initial.py 2012-10-16 21:48:22 +0000
@@ -0,0 +1,76 @@
1# -*- coding: utf-8 -*-
2import datetime
3from south.db import db
4from south.v2 import SchemaMigration
5from django.db import models
6
7
8class Migration(SchemaMigration):
9
10 def forwards(self, orm):
11 # Adding model 'UserProfile'
12 db.create_table('users_userprofile', (
13 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
14 ('user', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.User'], unique=True)),
15 ('username', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=50)),
16 ('share_id', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)),
17 ('share_name', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)),
18 ('share_dirname', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)),
19 ))
20 db.send_create_signal('users', ['UserProfile'])
21
22
23 def backwards(self, orm):
24 # Deleting model 'UserProfile'
25 db.delete_table('users_userprofile')
26
27
28 models = {
29 'auth.group': {
30 'Meta': {'object_name': 'Group'},
31 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
32 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
33 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
34 },
35 'auth.permission': {
36 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
37 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
38 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
39 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
40 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
41 },
42 'auth.user': {
43 'Meta': {'object_name': 'User'},
44 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
45 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
46 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
47 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
48 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
49 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
50 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
51 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
52 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
53 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
54 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
55 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
56 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
57 },
58 'contenttypes.contenttype': {
59 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
60 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
61 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
62 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
63 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
64 },
65 'users.userprofile': {
66 'Meta': {'object_name': 'UserProfile'},
67 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
68 'share_dirname': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
69 'share_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
70 'share_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
71 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}),
72 'username': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'})
73 }
74 }
75
76 complete_apps = ['users']
0\ No newline at end of file77\ No newline at end of file
178
=== added file 'users/migrations/__init__.py'

Subscribers

People subscribed via source and target branches