| 1 | from django.db import models
|
|---|
| 2 |
|
|---|
| 3 | class Topping(models.Model):
|
|---|
| 4 | name = models.CharField(max_length = 50)
|
|---|
| 5 |
|
|---|
| 6 | def __unicode__(self):
|
|---|
| 7 | return self.name
|
|---|
| 8 |
|
|---|
| 9 |
|
|---|
| 10 | class Pizza(models.Model):
|
|---|
| 11 | name = models.CharField(max_length = 50)
|
|---|
| 12 | toppings = models.ManyToManyField(Topping)
|
|---|
| 13 |
|
|---|
| 14 | def __unicode__(self):
|
|---|
| 15 | return self.name
|
|---|
| 16 |
|
|---|
| 17 | class Meta:
|
|---|
| 18 | ordering = ['name', 'toppings']
|
|---|
| 19 |
|
|---|
| 20 | ## test with the following
|
|---|
| 21 | ## create some toppings
|
|---|
| 22 | #tomato = Topping(name="Tomato")
|
|---|
| 23 | #tomato.save()
|
|---|
| 24 | #mozzarella = Topping(name="Mozzarella")
|
|---|
| 25 | #mozzarella.save()
|
|---|
| 26 |
|
|---|
| 27 | ## create a pizza
|
|---|
| 28 | #pizza = Pizza(name="Margareta")
|
|---|
| 29 | #pizza.save()
|
|---|
| 30 |
|
|---|
| 31 | ## add the toppings
|
|---|
| 32 | #pizza.toppings.add(tomato)
|
|---|
| 33 | #pizza.toppings.add(mozzarella)
|
|---|
| 34 |
|
|---|
| 35 | #p = Pizza.objects.get(pk=1)
|
|---|
| 36 | #Traceback (most recent call last):
|
|---|
| 37 | # File "<console>", line 1, in <module>
|
|---|
| 38 | # File "c:\python25\lib\site-packages\django\db\models\manager.py", line 82, in get return self.get_query_set().get(*args, **kwargs)
|
|---|
| 39 | # File "c:\python25\lib\site-packages\django\db\models\query.py", line 285, in get % (self.model._meta.object_name, num, kwargs))
|
|---|
| 40 | #MultipleObjectsReturned: get() returned more than one Pizza -- it returned 2! Lookup parameters were {'pk': 1}
|
|---|
| 41 |
|
|---|