Pārlūkot izejas kodu

adding product.Type to AttributeType membership object

master
Jonathan Moss 15 gadus atpakaļ
vecāks
revīzija
9abba20272

+ 71
- 0
product/migrations/0002_auto__add_atrributetypemembership.py Parādīt failu

@@ -0,0 +1,71 @@
1
+# encoding: utf-8
2
+import datetime
3
+from south.db import db
4
+from south.v2 import SchemaMigration
5
+from django.db import models
6
+
7
+class Migration(SchemaMigration):
8
+    
9
+    def forwards(self, orm):
10
+        
11
+        # Adding model 'AtrributeTypeMembership'
12
+        db.create_table('product_atrributetypemembership', (
13
+            ('attribute_Type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['product.AttributeType'])),
14
+            ('type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['product.Type'])),
15
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
16
+            ('relation_type', self.gf('django.db.models.fields.CharField')(default='optional', max_length=16)),
17
+        ))
18
+        db.send_create_signal('product', ['AtrributeTypeMembership'])
19
+    
20
+    
21
+    def backwards(self, orm):
22
+        
23
+        # Deleting model 'AtrributeTypeMembership'
24
+        db.delete_table('product_atrributetypemembership')
25
+    
26
+    
27
+    models = {
28
+        'product.atrributetypemembership': {
29
+            'Meta': {'object_name': 'AtrributeTypeMembership'},
30
+            'attribute_Type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['product.AttributeType']"}),
31
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
32
+            'relation_type': ('django.db.models.fields.CharField', [], {'default': "'optional'", 'max_length': '16'}),
33
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['product.Type']"})
34
+        },
35
+        'product.attribute': {
36
+            'Meta': {'object_name': 'Attribute'},
37
+            'attribute_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['product.AttributeType']"}),
38
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
39
+            'product': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['product.Item']"}),
40
+            'value': ('django.db.models.fields.CharField', [], {'max_length': '256'})
41
+        },
42
+        'product.attributetype': {
43
+            'Meta': {'object_name': 'AttributeType'},
44
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
45
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
46
+        },
47
+        'product.item': {
48
+            'Meta': {'object_name': 'Item'},
49
+            'date_available': ('django.db.models.fields.DateField', [], {}),
50
+            'date_created': ('django.db.models.fields.DateTimeField', [], {}),
51
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
52
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
53
+            'partner_id': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
54
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['product.Type']"})
55
+        },
56
+        'product.stockrecord': {
57
+            'Meta': {'object_name': 'StockRecord'},
58
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
59
+            'price_excl_tax': ('django.db.models.fields.FloatField', [], {}),
60
+            'product': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['product.Item']"}),
61
+            'tax': ('django.db.models.fields.FloatField', [], {})
62
+        },
63
+        'product.type': {
64
+            'Meta': {'object_name': 'Type'},
65
+            'attribute_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['product.AttributeType']", 'symmetrical': 'False'}),
66
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
67
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
68
+        }
69
+    }
70
+    
71
+    complete_apps = ['product']

+ 70
- 0
product/migrations/0003_auto.py Parādīt failu

@@ -0,0 +1,70 @@
1
+# encoding: utf-8
2
+import datetime
3
+from south.db import db
4
+from south.v2 import SchemaMigration
5
+from django.db import models
6
+
7
+class Migration(SchemaMigration):
8
+    
9
+    def forwards(self, orm):
10
+        
11
+        # Removing M2M table for field attribute_types on 'Type'
12
+        db.delete_table('product_type_attribute_types')
13
+    
14
+    
15
+    def backwards(self, orm):
16
+        
17
+        # Adding M2M table for field attribute_types on 'Type'
18
+        db.create_table('product_type_attribute_types', (
19
+            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
20
+            ('type', models.ForeignKey(orm['product.type'], null=False)),
21
+            ('attributetype', models.ForeignKey(orm['product.attributetype'], null=False))
22
+        ))
23
+        db.create_unique('product_type_attribute_types', ['type_id', 'attributetype_id'])
24
+    
25
+    
26
+    models = {
27
+        'product.atrributetypemembership': {
28
+            'Meta': {'object_name': 'AtrributeTypeMembership'},
29
+            'attribute_Type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['product.AttributeType']"}),
30
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
31
+            'relation_type': ('django.db.models.fields.CharField', [], {'default': "'optional'", 'max_length': '16'}),
32
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['product.Type']"})
33
+        },
34
+        'product.attribute': {
35
+            'Meta': {'object_name': 'Attribute'},
36
+            'attribute_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['product.AttributeType']"}),
37
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
38
+            'product': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['product.Item']"}),
39
+            'value': ('django.db.models.fields.CharField', [], {'max_length': '256'})
40
+        },
41
+        'product.attributetype': {
42
+            'Meta': {'object_name': 'AttributeType'},
43
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
44
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
45
+        },
46
+        'product.item': {
47
+            'Meta': {'object_name': 'Item'},
48
+            'date_available': ('django.db.models.fields.DateField', [], {}),
49
+            'date_created': ('django.db.models.fields.DateTimeField', [], {}),
50
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
51
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
52
+            'partner_id': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
53
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['product.Type']"})
54
+        },
55
+        'product.stockrecord': {
56
+            'Meta': {'object_name': 'StockRecord'},
57
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
58
+            'price_excl_tax': ('django.db.models.fields.FloatField', [], {}),
59
+            'product': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['product.Item']"}),
60
+            'tax': ('django.db.models.fields.FloatField', [], {})
61
+        },
62
+        'product.type': {
63
+            'Meta': {'object_name': 'Type'},
64
+            'attribute_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['product.AttributeType']", 'through': "orm['product.AtrributeTypeMembership']", 'symmetrical': 'False'}),
65
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
66
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
67
+        }
68
+    }
69
+    
70
+    complete_apps = ['product']

+ 12
- 2
product/models.py Parādīt failu

@@ -1,7 +1,7 @@
1 1
 from django.db import models
2 2
 
3 3
 class AttributeType(models.Model):
4
-    """Defines a product atrribute type"""
4
+    """Defines a product attribute type"""
5 5
     name = models.CharField(max_length = 128)
6 6
 
7 7
     def __unicode__(self):
@@ -11,11 +11,21 @@ class AttributeType(models.Model):
11 11
 class Type(models.Model):
12 12
     """Defines a product type"""
13 13
     name = models.CharField(max_length = 128)
14
-    attribute_types = models.ManyToManyField('product.AttributeType')
14
+    attribute_types = models.ManyToManyField('product.AttributeType', through = 'product.AtrributeTypeMembership')
15 15
 
16 16
     def __unicode__(self):
17 17
         return self.name
18 18
 
19
+class AtrributeTypeMembership(models.Model):
20
+    RELATIONSHIP_CHOICES = (
21
+        ('optional', 'optional'),
22
+        ('required', 'required'),
23
+    )
24
+    type = models.ForeignKey('product.Type')
25
+    attribute_Type = models.ForeignKey('product.AttributeType')
26
+    relation_type = models.CharField(max_length = 16, choices = RELATIONSHIP_CHOICES, default = 'optional')
27
+    
28
+
19 29
 class Item(models.Model):
20 30
     """The base product object"""
21 31
     name = models.CharField(max_length = 128)

Notiek ielāde…
Atcelt
Saglabāt