Form to add slug at homepage

This commit is contained in:
grisel-davy 2020-12-25 20:15:38 +01:00
parent 458e0aa846
commit ac1cdd82e3
8 changed files with 91 additions and 21 deletions

4
litl/admin.py Normal file
View file

@ -0,0 +1,4 @@
from django.contrib import admin
from .models import Slug
admin.site.register(Slug)

20
litl/forms.py Normal file
View file

@ -0,0 +1,20 @@
# coding: utf-8
# Author: Grizzly
#
# Forms for litl. The main form is for creating the link.
from django import forms
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit
from .models import Slug
class SlugAddForm(forms.ModelForm):
class Meta:
model = Slug
fields = ('destination','slug')
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.helper = FormHelper()
self.helper.form_method = 'post'
self.helper.add_input(Submit('submit','Shorten'))

View file

@ -38,6 +38,7 @@ INSTALLED_APPS = [
'django.contrib.contenttypes', 'django.contrib.contenttypes',
'django.contrib.sessions', 'django.contrib.sessions',
'django.contrib.messages', 'django.contrib.messages',
'crispy_forms',
'django.contrib.staticfiles', 'django.contrib.staticfiles',
] ]
@ -52,6 +53,7 @@ MIDDLEWARE = [
] ]
ROOT_URLCONF = 'litl.urls' ROOT_URLCONF = 'litl.urls'
CRISPY_TEMPLATE_PACK = 'bootstrap4'
TEMPLATES = [ TEMPLATES = [
{ {
@ -120,3 +122,5 @@ USE_TZ = True
# https://docs.djangoproject.com/en/3.1/howto/static-files/ # https://docs.djangoproject.com/en/3.1/howto/static-files/
STATIC_URL = '/static/' STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static_files")
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static/"),)

View file

@ -0,0 +1,7 @@
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
{% crispy form %}
{% endblock %}

View file

@ -1,26 +1,34 @@
{% load bootstrap4 %} {% load bootstrap4 %}
{% load static %}
{% bootstrap_css %} {% bootstrap_css %}
{% bootstrap_javascript jquery='full' %} {% bootstrap_javascript jquery='full' %}
<div class="jumbotron text-center"> <html>
<h1>My First Bootstrap Page</h1> <head>
<p>Resize this responsive page to see the effect!</p> <link rel="stylesheet" type="text/css" href="{% static 'css/base.css' %}"/>
</div> </head>
<body>
<div class="container"> <nav class="navbar navbar-dark bg-dark">
<div class="row"> <h1>Litl.</h1>
<div class="col-sm-4"> </nav>
<h3>Column 1</h3>
<p>Lorem ipsum dolor..</p> <div class="container">
<div class="row">
<div class="col-sm-1">
</div>
<div class="col-sm-10">
<div class="pt-5">
{% block content %}
{% endblock %}
</div>
</div>
<div class="col-sm-1">
</div>
</div>
</div> </div>
<div class="col-sm-4">
<h3>Column 2</h3>
<p>Lorem ipsum dolor..</p> </body>
</div> </html>
<div class="col-sm-4">
<h3>Column 3</h3>
<p>Lorem ipsum dolor..</p>
</div>
</div>
</div>

View file

@ -16,9 +16,11 @@ Including another URLconf
from django.contrib import admin from django.contrib import admin
from django.urls import path from django.urls import path
from .views import index from .views import index, AddSlug
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('', index, name="index"), #path('', index, name="index"),
path('', AddSlug, name="index"),
] ]

View file

@ -4,8 +4,11 @@
# Views for litl. # Views for litl.
from django.shortcuts import render from django.shortcuts import render
from django.http import HttpResponseRedirect
from .settings import TEMPLATES from .settings import TEMPLATES
from .models import Slug
from .forms import SlugAddForm
def index(request): def index(request):
"""Display the home page of the site. """Display the home page of the site.
@ -13,3 +16,18 @@ def index(request):
""" """
context = {} context = {}
return render(request,'base.html',context) return render(request,'base.html',context)
def AddSlug(request):
"""Display the form for creating a new slug.
"""
if request.method == 'POST':
form = SlugAddForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('')
else:
form = SlugAddForm()
return render(request,'add_slug.html',{'form':form})

7
static/css/base.css Normal file
View file

@ -0,0 +1,7 @@
body{
font-family: Monospace;
}
h1{
color:#FFFFFF;
}