From 8c69657dea516e81e8289182e470e1142c9474d0 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier <contact@jbpasquier.eu> Date: Thu, 12 Sep 2019 20:57:08 +0200 Subject: [PATCH] update: slugify & updated for abstract model --- djangoldp_profile/migrations/0001_initial.py | 5 +++-- djangoldp_profile/models.py | 11 ++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/djangoldp_profile/migrations/0001_initial.py b/djangoldp_profile/migrations/0001_initial.py index e56c428..9cb36f4 100644 --- a/djangoldp_profile/migrations/0001_initial.py +++ b/djangoldp_profile/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.11.20 on 2019-08-28 12:01 +# Generated by Django 1.11.20 on 2019-09-12 18:55 from __future__ import unicode_literals from django.conf import settings @@ -20,12 +20,13 @@ class Migration(migrations.Migration): name='Profile', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('slug', models.SlugField(unique=True)), ('available', models.NullBooleanField()), ('bio', models.CharField(blank=True, max_length=150)), ('city', models.CharField(blank=True, max_length=255)), ('phone', models.CharField(blank=True, max_length=255)), ('website', models.URLField(blank=True)), - ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL)), ], ), ] diff --git a/djangoldp_profile/models.py b/djangoldp_profile/models.py index 97e5892..0c087a6 100644 --- a/djangoldp_profile/models.py +++ b/djangoldp_profile/models.py @@ -8,7 +8,8 @@ from djangoldp.models import Model class Profile(Model): - user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) + user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='profile', on_delete=models.CASCADE) + slug = models.SlugField(unique=True) available = models.NullBooleanField(blank=True) bio = models.CharField(max_length=150, blank=True) city = models.CharField(max_length=255, blank=True) @@ -35,6 +36,10 @@ class Profile(Model): @receiver(post_save, sender=settings.AUTH_USER_MODEL) def create_user_profile(sender, instance, created, **kwargs): if created: - Profile.objects.create(user=instance) + Profile.objects.create(user=instance, slug=instance.username) else: - instance.profile.save() + try: + instance.profile.slug = instance.username + instance.profile.save() + except: + pass -- GitLab