let's use a SlugField to identify Activities

thingy_objects
Marnanel Thurman 2018-08-20 00:33:40 +01:00
rodzic 8e9b36696a
commit 354eee6a47
4 zmienionych plików z 101 dodań i 19 usunięć

Wyświetl plik

@ -1,4 +1,4 @@
# Generated by Django 2.0.6 on 2018-08-19 18:07
# Generated by Django 2.0.6 on 2018-08-19 18:29
from django.db import migrations, models
import django_kepi.models
@ -106,57 +106,57 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='accept',
name='numeric_id',
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
field=models.SlugField(default=django_kepi.models.Cobject.random_slug, editable=False, primary_key=True, serialize=False),
),
migrations.AddField(
model_name='add',
name='numeric_id',
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
field=models.SlugField(default=django_kepi.models.Cobject.random_slug, editable=False, primary_key=True, serialize=False),
),
migrations.AddField(
model_name='create',
name='numeric_id',
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
field=models.SlugField(default=django_kepi.models.Cobject.random_slug, editable=False, primary_key=True, serialize=False),
),
migrations.AddField(
model_name='delete',
name='numeric_id',
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
field=models.SlugField(default=django_kepi.models.Cobject.random_slug, editable=False, primary_key=True, serialize=False),
),
migrations.AddField(
model_name='follow',
name='numeric_id',
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
field=models.SlugField(default=django_kepi.models.Cobject.random_slug, editable=False, primary_key=True, serialize=False),
),
migrations.AddField(
model_name='like',
name='numeric_id',
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
field=models.SlugField(default=django_kepi.models.Cobject.random_slug, editable=False, primary_key=True, serialize=False),
),
migrations.AddField(
model_name='reject',
name='numeric_id',
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
field=models.SlugField(default=django_kepi.models.Cobject.random_slug, editable=False, primary_key=True, serialize=False),
),
migrations.AddField(
model_name='remove',
name='numeric_id',
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
field=models.SlugField(default=django_kepi.models.Cobject.random_slug, editable=False, primary_key=True, serialize=False),
),
migrations.AddField(
model_name='tombstone',
name='numeric_id',
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
field=models.SlugField(default=django_kepi.models.Cobject.random_slug, editable=False, primary_key=True, serialize=False),
),
migrations.AddField(
model_name='undo',
name='numeric_id',
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
field=models.SlugField(default=django_kepi.models.Cobject.random_slug, editable=False, primary_key=True, serialize=False),
),
migrations.AddField(
model_name='update',
name='numeric_id',
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
field=models.SlugField(default=django_kepi.models.Cobject.random_slug, editable=False, primary_key=True, serialize=False),
),
migrations.DeleteModel(
name='Register',

Wyświetl plik

@ -0,0 +1,68 @@
# Generated by Django 2.0.6 on 2018-08-19 18:31
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('django_kepi', '0004_auto_20180819_1829'),
]
operations = [
migrations.RenameField(
model_name='accept',
old_name='numeric_id',
new_name='slug',
),
migrations.RenameField(
model_name='add',
old_name='numeric_id',
new_name='slug',
),
migrations.RenameField(
model_name='create',
old_name='numeric_id',
new_name='slug',
),
migrations.RenameField(
model_name='delete',
old_name='numeric_id',
new_name='slug',
),
migrations.RenameField(
model_name='follow',
old_name='numeric_id',
new_name='slug',
),
migrations.RenameField(
model_name='like',
old_name='numeric_id',
new_name='slug',
),
migrations.RenameField(
model_name='reject',
old_name='numeric_id',
new_name='slug',
),
migrations.RenameField(
model_name='remove',
old_name='numeric_id',
new_name='slug',
),
migrations.RenameField(
model_name='tombstone',
old_name='numeric_id',
new_name='slug',
),
migrations.RenameField(
model_name='undo',
old_name='numeric_id',
new_name='slug',
),
migrations.RenameField(
model_name='update',
old_name='numeric_id',
new_name='slug',
),
]

Wyświetl plik

@ -20,13 +20,27 @@ class Cobject(models.Model):
class Meta:
abstract = True
def random_number():
return randint(0, 2**32)
def random_slug():
result = ''
numeric_id = models.PositiveIntegerField(
for i in range(6):
digit = randint(0, 35)
# yes, I know this can be done more efficiently.
# I want it to be readable.
if digit<10:
result += chr(ord('0')+digit)
else:
result += chr(ord('a')+(digit-10))
return result
slug = models.SlugField(
primary_key = True,
default = random_number,
editable = False)
default = random_slug,
editable = False,
)
verified = models.BooleanField(default=False)
remote_id = models.URLField(blank=True, null=True, default=None)
@ -39,7 +53,7 @@ class Cobject(models.Model):
else:
return settings.KEPI['URL_FORMAT'] % {
'type': self.__class__.__name__.lower(),
'id': self.numeric_id,
'slug': self.slug,
}
def is_local(self):

Wyświetl plik

@ -1,7 +1,7 @@
from django.urls import path, include
KEPI = {
'URL_FORMAT': 'https://example.com/activities/%(type)s/%(id)x',
'URL_FORMAT': 'https://example.com/activities/%(type)s/%(slug)s',
}
INSTALLED_APPS = (