| 1 | from django.db import models
|
|---|
| 2 |
|
|---|
| 3 | class Institution(models.Model):
|
|---|
| 4 | name = models.CharField(maxlength=200, core=True)
|
|---|
| 5 | reference_url = models.CharField(maxlength=200, core=True)
|
|---|
| 6 | class Admin: # because of this field, no error here
|
|---|
| 7 | pass
|
|---|
| 8 |
|
|---|
| 9 | def __repr__(self):
|
|---|
| 10 | return self.name
|
|---|
| 11 |
|
|---|
| 12 | class License(models.Model):
|
|---|
| 13 | # no Admin class will produce an error when added
|
|---|
| 14 | title = models.CharField(maxlength=200)
|
|---|
| 15 | reference_url = models.URLField()
|
|---|
| 16 | description = models.TextField()
|
|---|
| 17 | def __repr__(self):
|
|---|
| 18 | return self.title
|
|---|
| 19 |
|
|---|
| 20 | class OperatingSystem(models.Model):
|
|---|
| 21 | # no Admin class: no way to add this object as a subpart of SoftwarePackage
|
|---|
| 22 | name = models.CharField(maxlength=200, core=True)
|
|---|
| 23 | def __repr__(self):
|
|---|
| 24 | return self.name
|
|---|
| 25 |
|
|---|
| 26 | class SoftwarePackage(models.Model):
|
|---|
| 27 | title = models.CharField(maxlength=200)
|
|---|
| 28 | institution = models.ForeignKey(Institution, null=True)
|
|---|
| 29 | license = models.ForeignKey(License, null=True)
|
|---|
| 30 | operating_system = models.ManyToManyField(OperatingSystem, null=True)
|
|---|
| 31 | open_source = models.BooleanField()
|
|---|
| 32 |
|
|---|
| 33 | def __repr__(self):
|
|---|
| 34 | return self.title
|
|---|
| 35 | class Admin:
|
|---|
| 36 | pass
|
|---|
| 37 |
|
|---|
| 38 |
|
|---|