notes = models.TextField()
class Crag(models.Model):
- area = models.ForeignKey(Area, on_delete=models.CASCADE)
+ area = models.ForeignKey(
+ Area,
+ on_delete=models.CASCADE,
+ related_name='crags',
+ )
name = models.CharField(max_length=64)
notes = models.TextField()
class Route(models.Model):
- area = models.ForeignKey(Crag, on_delete=models.CASCADE)
+ area = models.ForeignKey(
+ Crag,
+ on_delete=models.CASCADE,
+ related_name='routes',
+ )
name = models.CharField(max_length=64)
notes = models.TextField()
)
class Pitch(models.Model):
- route = models.ForeignKey(Route, on_delete=models.CASCADE)
+ route = models.ForeignKey(
+ Route,
+ on_delete=models.CASCADE,
+ related_name='pitches',
+ )
name = models.CharField(max_length=64, null=True)
difficulty = models.CharField(max_length=5, choices=ROUTE_DIFFICULTY_CHOICES)
safety = models.CharField(max_length=4, choices=SAFETY_CHOICES)
notes = models.TextField()
class Cluster(models.Model):
- area = models.ForeignKey(Area, on_delete=models.CASCADE)
+ area = models.ForeignKey(
+ Area,
+ on_delete=models.CASCADE,
+ related_name='clusters',
+ )
name = models.CharField(max_length=64)
notes = models.TextField()
class Boulder(models.Model):
- cluster = models.ForeignKey(Cluster, on_delete=models.CASCADE)
+ cluster = models.ForeignKey(
+ Cluster,
+ on_delete=models.CASCADE,
+ related_name='boulders',
+ )
name = models.CharField(max_length=64)
notes = models.TextField()
)
class Problem(models.Model):
- boulder = models.ForeignKey(Boulder, on_delete=models.CASCADE)
+ boulder = models.ForeignKey(
+ Boulder,
+ on_delete=models.CASCADE,
+ related_name='problems',
+ )
name = models.CharField(max_length=64)
difficulty = models.CharField(max_length=3, choices=BOULDER_DIFFICULTY_CHOICES)
safety = models.CharField(max_length=4, choices=SAFETY_CHOICES)