From c5357cab3d79cd177c277b968a311eef3dde302b Mon Sep 17 00:00:00 2001 From: Philip Sargent Date: Tue, 21 Jan 2025 19:18:17 +0000 Subject: Model change: add 1:1 link Person:User --- core/models/troggle.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'core/models/troggle.py') diff --git a/core/models/troggle.py b/core/models/troggle.py index 237247f..6155347 100644 --- a/core/models/troggle.py +++ b/core/models/troggle.py @@ -5,6 +5,7 @@ getcontext().prec = 2 # use 2 significant figures for decimal calculations from django.db import models from django.urls import reverse +from django.contrib.auth.models import User import settings @@ -82,8 +83,10 @@ class Person(TroggleModel): first_name = models.CharField(max_length=100) last_name = models.CharField(max_length=100) fullname = models.CharField(max_length=200) # display name, but should not be used for lookups - nickname = models.CharField(max_length=200) + nickname = models.CharField(max_length=200, blank=True) slug = models.SlugField(max_length=50, blank=True, null=True) # unique, enforced in code not in db + # no delete cascade. We have users without Persons, and Persons without users + user = models.OneToOneField(User, models.SET_NULL, blank=True, null=True) is_vfho = models.BooleanField( help_text="VFHO is the Vereines für Höhlenkunde in Obersteier, a nearby Austrian caving club.", @@ -92,7 +95,7 @@ class Person(TroggleModel): is_guest = models.BooleanField(default=False) # This is per-Person, not per-PersonExpedition mug_shot = models.CharField(max_length=100, blank=True, null=True) blurb = models.TextField(blank=True, null=True) - orderref = models.CharField(max_length=200) # for alphabetic + orderref = models.CharField(max_length=200, blank=True) # for alphabetic def get_absolute_url(self): # we do not use URL_ROOT any more. -- cgit v1.2.3