Browse Source

Solution of 06

Praktikum_06_Lsg
Sally Zeitler 3 years ago
parent
commit
b4ac907a6a
7 changed files with 54 additions and 5 deletions
  1. 3
    0
      .gitignore
  2. 1
    1
      MEIM_Lsg/settings.py
  3. 9
    0
      posts/forms.py
  4. 5
    2
      posts/urls.py
  5. 22
    2
      posts/views.py
  6. 12
    0
      templates/edit.html
  7. 2
    0
      templates/index.html

+ 3
- 0
.gitignore View File

@@ -82,9 +82,12 @@ target/
*.pyc
**__pycache__/
local_settings.py
db.sqlite3

.env
**/db.sqlite3

# PyCharm
**/.idea/



+ 1
- 1
MEIM_Lsg/settings.py View File

@@ -106,7 +106,7 @@ AUTH_PASSWORD_VALIDATORS = [
# Internationalization
# https://docs.djangoproject.com/en/2.1/topics/i18n/

LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'de-de'

TIME_ZONE = 'UTC'


+ 9
- 0
posts/forms.py View File

@@ -0,0 +1,9 @@
from django import forms
import datetime

class NoticeForm(forms.Form):
date_formats = ['%d.%m.%Y', '%d.%m.%y']
title = forms.CharField(label='Titel', max_length=80)
text = forms.CharField(label='Text', max_length=400)
start = forms.DateField(label='Von', input_formats=date_formats, initial=datetime.date.today)
end = forms.DateField(label='Bis', input_formats=date_formats, initial=datetime.date.today)

+ 5
- 2
posts/urls.py View File

@@ -3,6 +3,9 @@ from django.urls import path, re_path

urlpatterns = [
# use re_path for regex (.*) - this regex accepts anything - see https://docs.python.org/3/library/re.html for more
path('', views.home, name=''),
re_path('(?P<value>.*)/$', views.home, name='textausgabe')
path('', views.home, name='index'),
re_path('delete/(?P<value>\d+)/$', views.delete, name='delete'),
re_path('(?P<value>.*)/$', views.home, name='textausgabe'),
path('new', views.new, name='new'),
# only accept numbers ^[0-9]*$
]

+ 22
- 2
posts/views.py View File

@@ -1,7 +1,9 @@
from django.shortcuts import render
from django.shortcuts import render, redirect
from datetime import timedelta
from django.utils import timezone
from posts.models import Notice
from posts.forms import NoticeForm
from django.http import HttpResponse
# Create your views here.


@@ -17,4 +19,22 @@ def home(request, value=""):
"title": "Beboop",
"notices": display_notices
}
return render(request, 'index.html', context)
return render(request, 'index.html', context)

def new(request):
if request.method == "POST":
form = NoticeForm(request.POST)
if form.is_valid():
newNotice = Notice(notice_title=form.cleaned_data['title'],
notice_text=form.cleaned_data['text'],
pub_start=form.cleaned_data['start'],
pub_end=form.cleaned_data['end'])
newNotice.save()
return redirect('index')
context = {'form': NoticeForm()}
return render(request, 'edit.html', context)

def delete(request, value):
notice = Notice.objects.get(id = value)
notice.delete()
return redirect('index')

+ 12
- 0
templates/edit.html View File

@@ -0,0 +1,12 @@
{% extends "base.html" %}

{% block title %} {{ title }} {% endblock title %}

{% block content %}
<h1>Neue Nachricht</h1>
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default">Speichern</button>
</form>
{% endblock content %}

+ 2
- 0
templates/index.html View File

@@ -7,6 +7,8 @@
<div class="jumbotron">
<h1 class="display-6">{{ notice.notice_title }}</h1>
<p class="lead">{{notice.notice_text}}</p>
<p><a href="{% url 'delete' notice.id %}" class="btn btn-info" role="button">Nachricht löschen</a></p>
</div>
{% endfor %}
<p><a href="{% url 'new' %}" class="btn btn-info" role="button">Neue Nachricht</a></p>
{% endblock content %}

Loading…
Cancel
Save