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