from django.db import models from django.urls import reverse class Student(models.Model): matnr = models.IntegerField(unique=True, verbose_name="Matrikelnummer", help_text='Matrikelnummer wird extern vergeben') name = models.CharField(max_length=64) ANREDE_CHOICES = ( ('h', 'Herr'), ('f', 'Frau'), ('d', 'Divers'), ) anrede = models.CharField(max_length=1, blank=True, choices=ANREDE_CHOICES) hoert = models.ManyToManyField('Vorlesung', blank=True) def __str__(self): return "%s [%s]" % (self.name, self.matnr) class Meta: verbose_name = 'Student' verbose_name_plural = 'Studenten' ordering = ('name', 'matnr',) class Professor(models.Model): persnr = models.IntegerField(unique=True) name = models.CharField(max_length=64) def __str__(self): return "%s [%s]" % (self.name, self.persnr) def get_absolute_url(self): return reverse('show_prof', kwargs={'id': self.id,} ) class Meta: verbose_name = 'Professor' verbose_name_plural = 'Professoren' ordering = ('name', 'persnr',) class Vorlesung(models.Model): vorlnr = models.IntegerField(unique=True) titel = models.CharField(max_length=128) dozent = models.ForeignKey(Professor, null=True, blank=True, on_delete=models.SET_NULL) def __str__(self): return "%s [%s] von %s" % (self.titel, self.vorlnr, self.dozent) def get_absolute_url(self): return reverse('show_vl', kwargs={'id': self.id,} ) class Meta: verbose_name = 'Vorlesung' verbose_name_plural = 'Vorlesungen' ordering = ('titel', 'vorlnr',)