PK ! % django_markdown_messaging/__init__.pyPK ! [ [ " django_markdown_messaging/admin.pyfrom django.contrib import admin from .models import Message admin.site.register(Message)PK ! !7H] ] ! django_markdown_messaging/apps.pyfrom django.apps import AppConfig class MessagingConfig(AppConfig): name = 'messaging' PK ! V] 4 django_markdown_messaging/migrations/0001_initial.py# Generated by Django 2.0.6 on 2018-08-20 10:24 from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Message', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('slug', models.SlugField(max_length=32, unique=True)), ('message', models.TextField()), ('is_editable', models.BooleanField(default=False, verbose_name="Autoriser l'édition")), ('is_deletable', models.BooleanField(default=False, verbose_name='Autoriser la suppression')), ], ), ] PK ! 0 django_markdown_messaging/migrations/__init__.pyPK ! B`z # django_markdown_messaging/models.pyfrom django.db import models from django.db.utils import IntegrityError from django.utils.crypto import get_random_string import markdown def generate_slug(length: int) -> str: """Generate a random slug""" chars = 'abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789' return get_random_string(length, chars) class Message(models.Model): """Model for a message""" slug = models.SlugField(unique=True, max_length=32) message = models.TextField() is_editable = models.BooleanField(default=False, verbose_name="Autoriser l'édition") is_deletable = models.BooleanField(default=False, verbose_name="Autoriser la suppression") @property def markdown(self): return markdown.markdown(self.message, output_format='html5') def save(self, *args, **kwargs): """Custom message saving to add a random slug""" # Three tries to generate unique slug for i in range(0, 3): if not self.slug: self.slug = generate_slug(5) try: super().save(*args, **kwargs) break except IntegrityError: self.slug = generate_slug(5) def __str__(self): return self.slug PK ! E 7 django_markdown_messaging/templates/messaging/base.html
Message correctly saved: {{ request.META.HTTP_HOST }}{% url 'messaging:message' added_slug %}
Don't forget to save this link in order to share it! :-)
Message {{ unknown_slug }} does not exist.
You can also create a new message.