@@ -2,9 +2,21 @@ | |||
{% load taggit_templatetags2_tags %} | |||
{% get_tagcloud as tags for 'application' %} | |||
{% include_tagcloud 'application.Post' %} | |||
<div> | |||
<form class="post-form" method="post"> | |||
{% csrf_token %} {{form.as_p}} | |||
<button type="submit" class="save btn btn-outline-dark">Save</button> | |||
</form> | |||
{% if messages %} | |||
{% for message in messages %} | |||
<div {% if message.tags %} class="{{ message.tags }}" {% endif %}>{{ message }}</div> | |||
{% endfor %} | |||
{% endif %} | |||
<form type="get" action="." style="margin: 0"> | |||
<input id="search_box" type="text" name="search_box" placeholder="Search..."> | |||
<button id="search_submit" type="submit">Suchen</button> | |||
<input id="search_box" type="text" name="search_box" placeholder="Search..."></br> | |||
<button id="search_submit" type="submit" class="btn btn-outline-dark">Suchen</button> | |||
</form> | |||
<div> | |||
{% for post in posts %} |
@@ -11,7 +11,6 @@ urlpatterns = [ | |||
url(r'^$', views.post_list, name='post_list'), | |||
url(r'^tag/(?P<slug>[-\w]+)/$', views.post_list, name='post_list_by_tag'), | |||
url(r'^taglist/$', views.tag_list, name='tag_list'), | |||
url(r'^student/', views.student_page, name='student_page'), | |||
url(r'^search/', views.blog_search_list_view, name='blog_search_list_view'), | |||
url(r'^search/result/$', views.blog_search_list_view, name='post_list_by_search'), | |||
url(r'^post/(?P<pk>\d+)/$', views.post_detail, name='post_detail'), | |||
@@ -20,10 +19,13 @@ urlpatterns = [ | |||
url(r'^drafts/$', views.post_draft_list, name='post_draft_list'), | |||
url(r'^post/(?P<pk>\d+)/publish/$', views.post_publish, name='post_publish'), | |||
url(r'^post/(?P<pk>\d+)/remove/$', views.post_remove, name='post_remove'), | |||
url(r'^student/(?P<slug>[-\w]+)/remove/$', views.tag_remove, name='tag_remove'), | |||
url(r'^tags/', include('taggit_templatetags2.urls')), | |||
] | |||
""" | |||
url(r'^student/(?P<slug>[-\w]+)/remove/$', views.tag_remove, name='tag_remove'), | |||
""" | |||
if settings.DEBUG: | |||
import debug_toolbar | |||
urlpatterns += [ |
@@ -126,21 +126,36 @@ def post_remove(request, pk): | |||
return redirect('post_list') | |||
@login_required | |||
""" @login_required | |||
def tag_remove(request, slug=None): | |||
log = logging.getLogger('mysite') | |||
user_instance = get_object_or_404(CustomUser, user=request.user) | |||
log.info(u) | |||
tag = Tag.get_object_or_404(Tag, slug = slug) | |||
log.info(tag) | |||
if slug: | |||
user_instance.tags.remove(tag) | |||
save_m2m() | |||
return redirect('student_page') | |||
return redirect('student_page') """ | |||
@login_required | |||
def student_page(request): | |||
def tag_list(request): | |||
log = logging.getLogger('mysite') | |||
u = User.objects.get(username=request.user) | |||
if u: | |||
tags_user = Tag.objects.filter(customuser__user = u) | |||
log.info(tags_user) | |||
for tag in tags_user: | |||
posts = Post.objects.filter(tags__in=[tag]).order_by('-published_date') | |||
log.info(posts) | |||
return render(request, 'tag_list.html', locals()) | |||
def blog_search_list_view(request): | |||
log = logging.getLogger('mysite') | |||
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date') | |||
if request.method == 'GET': | |||
search_query = request.GET.get('search_box', None) | |||
log.info(search_query) | |||
posts = posts.filter(tags__name__in=[search_query]) | |||
log = logging.getLogger('mysite') | |||
user_instance = get_object_or_404(CustomUser, user=request.user) | |||
if request.method == "POST": | |||
@@ -150,7 +165,6 @@ def student_page(request): | |||
log.info('form is valid') | |||
obj = form.save(commit=False) | |||
obj.user = request.user | |||
obj.save() | |||
tag_names = [tag.name for tag in Tag.objects.all()] | |||
log.info(tag_names) | |||
m_tags = form.cleaned_data['tags'] | |||
@@ -159,39 +173,15 @@ def student_page(request): | |||
if m_tags in tag_names: | |||
log.info('worked out') | |||
obj.tags.add(m_tags) | |||
form.save_m2m() | |||
obj.save() | |||
messages.info(request, 'Der Tag "' + m_tags + '" wurde gespeichert') | |||
return redirect('/student/') | |||
return redirect('/search/') | |||
else: | |||
messages.info(request, 'Sorry !! Den Tag den du suchst gibt es leider nicht!') | |||
else: | |||
form = NewTagForm() | |||
return render(request, 'student_page.html', {'form':form}) | |||
@login_required | |||
def tag_list(request): | |||
log = logging.getLogger('mysite') | |||
u = User.objects.get(username=request.user) | |||
if u: | |||
tags_user = Tag.objects.filter(customuser__user = u) | |||
log.info(tags_user) | |||
for tag in tags_user: | |||
posts = Post.objects.filter(tags__in=[tag]).order_by('-published_date') | |||
log.info(posts) | |||
return render(request, 'tag_list.html', locals()) | |||
def blog_search_list_view(request): | |||
log = logging.getLogger('mysite') | |||
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date') | |||
if request.method == 'GET': | |||
search_query = request.GET.get('search_box', None) | |||
log.info(search_query) | |||
posts = posts.filter(tags__name__in=[search_query]) | |||
return render(request, 'blog_search_list_view.html', locals()) | |||
def tag_cloud(request): | |||
return render(request, 'tag_cloud.html', {}) | |||
mail.send( | |||
'kleinhenz.e@gmail.com', # List of email addresses also accepted | |||
'esther.kleinhenz@web.de', |
@@ -43,10 +43,11 @@ | |||
\bibcite{Schlede}{{FMS17}{}{{}}{{}}} | |||
\bibcite{Django}{{Fou18a}{}{{}}{{}}} | |||
\bibcite{Django-2}{{Fou18b}{}{{}}{{}}} | |||
\bibcite{Python}{{Fou18c}{}{{}}{{}}} | |||
\bibcite{Django-3}{{Fou18c}{}{{}}{{}}} | |||
\bibcite{Python}{{Fou18d}{}{{}}{{}}} | |||
\bibcite{Gaynor}{{Gay10}{}{{}}{{}}} | |||
\@writefile{toc}{\contentsline {chapter}{Referenzen}{24}{chapter*.16}} | |||
\bibcite{Herzog}{{Her16}{}{{}}{{}}} | |||
\@writefile{toc}{\contentsline {chapter}{Referenzen}{23}{chapter*.16}} | |||
\bibcite{King}{{Kin17}{}{{}}{{}}} | |||
\bibcite{Leipner}{{Lei13}{}{{}}{{}}} | |||
\bibcite{Microsoft}{{Mic18}{}{{}}{{}}} |
@@ -1,4 +1,4 @@ | |||
\begin{thebibliography}{Fou18b} | |||
\begin{thebibliography}{Fou18d} | |||
\bibitem[BA11]{Bootstrap} | |||
Twitter~Inc Bootstrap~Authors. | |||
@@ -51,7 +51,14 @@ Django~Software Foundation. | |||
\newblock | |||
https://docs.djangoproject.com/en/dev/topics/forms/modelforms/\#the-save-method. | |||
\bibitem[Fou18c]{Python} | |||
\bibitem[Fou18c]{Django-3} | |||
Django~Software Foundation. | |||
\newblock Working with forms. | |||
\newblock 2018. | |||
\newblock | |||
https://docs.djangoproject.com/en/dev/topics/forms/\#using-a-form-in-a-view. | |||
\bibitem[Fou18d]{Python} | |||
Python~Software Foundation. | |||
\newblock Virtual environments and packages. | |||
\newblock 2018. |
@@ -23,6 +23,7 @@ Warning--empty journal in Djangogirls | |||
Warning--empty journal in Schlede | |||
Warning--empty journal in Django | |||
Warning--empty journal in Django-2 | |||
Warning--empty journal in Django-3 | |||
Warning--empty journal in Python | |||
Warning--empty journal in Gaynor | |||
Warning--empty journal in Herzog | |||
@@ -38,45 +39,45 @@ Warning--empty journal in Shelest | |||
Warning--empty journal in Solutions | |||
Warning--empty journal in Timm | |||
Warning--empty publisher in Weigend | |||
You've used 23 entries, | |||
You've used 24 entries, | |||
2543 wiz_defined-function locations, | |||
684 strings with 7930 characters, | |||
and the built_in function-call counts, 6272 in all, are: | |||
= -- 618 | |||
> -- 184 | |||
< -- 23 | |||
+ -- 48 | |||
- -- 46 | |||
* -- 303 | |||
:= -- 1101 | |||
add.period$ -- 92 | |||
call.type$ -- 23 | |||
change.case$ -- 114 | |||
688 strings with 8039 characters, | |||
and the built_in function-call counts, 6541 in all, are: | |||
= -- 645 | |||
> -- 192 | |||
< -- 24 | |||
+ -- 51 | |||
- -- 48 | |||
* -- 316 | |||
:= -- 1145 | |||
add.period$ -- 96 | |||
call.type$ -- 24 | |||
change.case$ -- 119 | |||
chr.to.int$ -- 21 | |||
cite$ -- 46 | |||
duplicate$ -- 324 | |||
empty$ -- 466 | |||
format.name$ -- 90 | |||
if$ -- 1224 | |||
int.to.chr$ -- 3 | |||
cite$ -- 48 | |||
duplicate$ -- 338 | |||
empty$ -- 486 | |||
format.name$ -- 94 | |||
if$ -- 1277 | |||
int.to.chr$ -- 4 | |||
int.to.str$ -- 0 | |||
missing$ -- 24 | |||
newline$ -- 141 | |||
num.names$ -- 69 | |||
pop$ -- 139 | |||
missing$ -- 25 | |||
newline$ -- 147 | |||
num.names$ -- 72 | |||
pop$ -- 145 | |||
preamble$ -- 1 | |||
purify$ -- 138 | |||
purify$ -- 144 | |||
quote$ -- 0 | |||
skip$ -- 249 | |||
skip$ -- 261 | |||
stack$ -- 0 | |||
substring$ -- 161 | |||
substring$ -- 168 | |||
swap$ -- 1 | |||
text.length$ -- 23 | |||
text.prefix$ -- 21 | |||
text.length$ -- 24 | |||
text.prefix$ -- 22 | |||
top$ -- 0 | |||
type$ -- 180 | |||
warning$ -- 23 | |||
while$ -- 46 | |||
type$ -- 188 | |||
warning$ -- 24 | |||
while$ -- 48 | |||
width$ -- 29 | |||
write$ -- 301 | |||
write$ -- 314 | |||
(There was 1 error message) |
@@ -1,4 +1,4 @@ | |||
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 13 NOV 2018 10:04 | |||
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 13 NOV 2018 18:40 | |||
entering extended mode | |||
\write18 enabled. | |||
file:line:error style messages enabled. | |||
@@ -1076,20 +1076,20 @@ Package babel Info: Redefining german shorthand "~ | |||
]) | |||
File: AcknowledgmentsDedicationSentence/erklaerung.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung.pdf> | |||
File: AcknowledgmentsDedicationSentence/erklaerung.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung.pdf> | |||
File: AcknowledgmentsDedicationSentence/erklaerung.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung.pdf, page 1> | |||
File: AcknowledgmentsDedicationSentence/erklaerung.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung.pdf, page 1> | |||
File: AcknowledgmentsDedicationSentence/erklaerung.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung.pdf, page 1> | |||
File: AcknowledgmentsDedicationSentence/erklaerung.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung.pdf, page 1> | |||
File: AcknowledgmentsDedicationSentence/erklaerung.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung.pdf, page 1> | |||
File: AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf> | |||
File: AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf> | |||
File: AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf, page 1> | |||
File: AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf, page 1> | |||
File: AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf, page 1> | |||
File: AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf, page 1> | |||
File: AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf Graphic file (type pdf) | |||
<use AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf, page 1> | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 37. | |||
Package babel Info: Redefining german shorthand "| | |||
@@ -1137,17 +1137,17 @@ Package babel Info: Redefining german shorthand "~ | |||
] (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.toc | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 29. | |||
(babel) in language on input line 30. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 29. | |||
(babel) in language on input line 30. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 29. | |||
(babel) in language on input line 30. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 29. | |||
(babel) in language on input line 30. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 29. | |||
(babel) in language on input line 30. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 29. | |||
(babel) in language on input line 30. | |||
[3 | |||
@@ -1425,6 +1425,12 @@ Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 81. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 81. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 84. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 84. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 84. | |||
Package Fancyhdr Warning: \headheight is too small (12.0pt): | |||
@@ -1433,24 +1439,24 @@ Package Fancyhdr Warning: \headheight is too small (12.0pt): | |||
This may cause the page layout to be inconsistent, however. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 83. | |||
(babel) in language on input line 86. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 83. | |||
(babel) in language on input line 86. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 83. | |||
(babel) in language on input line 86. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 83. | |||
(babel) in language on input line 86. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 83. | |||
(babel) in language on input line 86. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 83. | |||
(babel) in language on input line 86. | |||
[8] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 95. | |||
(babel) in language on input line 98. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 95. | |||
(babel) in language on input line 98. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 95. | |||
(babel) in language on input line 98. | |||
Package Fancyhdr Warning: \headheight is too small (12.0pt): | |||
@@ -1459,32 +1465,30 @@ Package Fancyhdr Warning: \headheight is too small (12.0pt): | |||
This may cause the page layout to be inconsistent, however. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 100. | |||
(babel) in language on input line 103. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 100. | |||
(babel) in language on input line 103. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 100. | |||
(babel) in language on input line 103. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 100. | |||
(babel) in language on input line 103. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 100. | |||
(babel) in language on input line 103. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 100. | |||
(babel) in language on input line 103. | |||
[9] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 104. | |||
(babel) in language on input line 107. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 104. | |||
(babel) in language on input line 107. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 104. | |||
(babel) in language on input line 107. | |||
File: figures/bootstrap-head-tag.png Graphic file (type bmp) | |||
<figures/bootstrap-head-tag.png> | |||
LaTeX Warning: `!h' float specifier changed to `!ht'. | |||
File: figures/bootstrap-class-example.png Graphic file (type bmp) | |||
<figures/bootstrap-class-example.png> | |||
Package Fancyhdr Warning: \headheight is too small (12.0pt): | |||
Make it at least 14.49998pt. | |||
@@ -1492,24 +1496,26 @@ Package Fancyhdr Warning: \headheight is too small (12.0pt): | |||
This may cause the page layout to be inconsistent, however. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 123. | |||
(babel) in language on input line 120. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 123. | |||
(babel) in language on input line 120. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 123. | |||
(babel) in language on input line 120. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 123. | |||
(babel) in language on input line 120. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 123. | |||
(babel) in language on input line 120. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 123. | |||
(babel) in language on input line 120. | |||
[10] | |||
File: figures/bootstrap-class-example.png Graphic file (type bmp) | |||
<figures/bootstrap-class-example.png> | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 129. | |||
(babel) in language on input line 132. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 129. | |||
(babel) in language on input line 132. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 129. | |||
(babel) in language on input line 132. | |||
) | |||
Package Fancyhdr Warning: \headheight is too small (12.0pt): | |||
@@ -1778,28 +1784,28 @@ Package babel Info: Redefining german shorthand "~ | |||
File: figures/post-edit-view.png Graphic file (type bmp) | |||
<figures/post-edit-view.png> | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 147. | |||
(babel) in language on input line 149. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 147. | |||
(babel) in language on input line 149. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 147. | |||
(babel) in language on input line 149. | |||
Overfull \hbox (1.12642pt too wide) in paragraph at lines 148--149 | |||
Overfull \hbox (1.12642pt too wide) in paragraph at lines 150--151 | |||
\T1/aer/m/n/12 Tags als ein-ge-logg-ter User abon-nie-ren und ver-wal-ten Front-end und Admin-Backend? | |||
[] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 150. | |||
(babel) in language on input line 152. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 150. | |||
(babel) in language on input line 152. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 150. | |||
(babel) in language on input line 152. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 153. | |||
(babel) in language on input line 155. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 153. | |||
(babel) in language on input line 155. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 153. | |||
(babel) in language on input line 155. | |||
) | |||
Package Fancyhdr Warning: \headheight is too small (12.0pt): | |||
@@ -1820,6 +1826,25 @@ Package babel Info: Redefining german shorthand "| | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 60. | |||
[20] | |||
Package Fancyhdr Warning: \headheight is too small (12.0pt): | |||
Make it at least 14.49998pt. | |||
We now make it that large for the rest of the document. | |||
This may cause the page layout to be inconsistent, however. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 60. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 60. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 60. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 60. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 60. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 60. | |||
[21] | |||
\openout2 = `chapters/ergebnis.aux'. | |||
(./chapters/ergebnis.tex | |||
@@ -1853,7 +1878,7 @@ Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 61. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 61. | |||
[21 | |||
[22 | |||
@@ -1885,7 +1910,7 @@ Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 63. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 63. | |||
[22 | |||
[23 | |||
@@ -1924,25 +1949,35 @@ Underfull \hbox (badness 10000) in paragraph at lines 48--53 | |||
\T1/aer/m/n/12 https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#the- | |||
[] | |||
Underfull \hbox (badness 8056) in paragraph at lines 55--60 | |||
[]\T1/aer/m/n/12 Django Soft-ware Foun-da-ti-on. Working with forms. 2018. | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 55--60 | |||
\T1/aer/m/n/12 https://docs.djangoproject.com/en/dev/topics/forms/#using-a-form- | |||
[] | |||
Missing character: There is no ’ in font aer12! | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 74. | |||
(babel) in language on input line 73. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 74. | |||
(babel) in language on input line 73. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 74. | |||
(babel) in language on input line 73. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 74. | |||
(babel) in language on input line 73. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 74. | |||
(babel) in language on input line 73. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 74. | |||
[23 | |||
(babel) in language on input line 73. | |||
[24 | |||
] | |||
Underfull \hbox (badness 2717) in paragraph at lines 75--80 | |||
Underfull \hbox (badness 2717) in paragraph at lines 82--87 | |||
[]\T1/aer/m/n/12 Adam King. Djan-go midd-le-wa-res and the re-quest/-re-spon-se cy- | |||
[] | |||
@@ -1951,52 +1986,52 @@ Missing character: There is no ̈ in font aer12! | |||
Missing character: There is no ̈ in font aer12! | |||
Missing character: There is no ’ in font aer12! | |||
Underfull \hbox (badness 10000) in paragraph at lines 96--102 | |||
Underfull \hbox (badness 10000) in paragraph at lines 103--109 | |||
\T1/aer/m/n/12 medium-com-nnennandukwe-python-is-the-back-end-programming- | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 104--108 | |||
Underfull \hbox (badness 10000) in paragraph at lines 111--115 | |||
[]\T1/aer/m/n/12 Selwin Ong. django-post_office git re-po-si-to-ry. 2018. | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 110--115 | |||
Underfull \hbox (badness 10000) in paragraph at lines 117--122 | |||
[]\T1/aer/m/n/12 Mark Ot-to. Boot-strap from twit-ter. 2011. | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 110--115 | |||
Underfull \hbox (badness 10000) in paragraph at lines 117--122 | |||
\T1/aer/m/n/12 https://blog.twitter.com/developer/en_us/a/2011/bootstrap- | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 117--122 | |||
Underfull \hbox (badness 10000) in paragraph at lines 124--129 | |||
[]\T1/aer/m/n/12 Mark Ot-to. Say hel-lo to boot-strap 2.0. 2012. | |||
[] | |||
Overfull \hbox (38.1438pt too wide) in paragraph at lines 117--122 | |||
Overfull \hbox (38.1438pt too wide) in paragraph at lines 124--129 | |||
\T1/aer/m/n/12 https://web.archive.org/web/20120203191214/https://dev.twitter.com/blog/say- | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 124--128 | |||
Underfull \hbox (badness 10000) in paragraph at lines 131--135 | |||
[]\T1/aer/m/n/12 Shabda. Un-der-stan-ding de-co-ra-tors. 2009. | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 130--136 | |||
Underfull \hbox (badness 10000) in paragraph at lines 137--143 | |||
[]\T1/aer/m/n/12 Alexy She-lest. Mo-del view con-trol-ler, mo-del view pre- | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 130--136 | |||
Underfull \hbox (badness 10000) in paragraph at lines 137--143 | |||
\T1/aer/m/n/12 sen-ter, and mo-del view view-mo-del de-sign pat-terns. 2009. | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 130--136 | |||
Underfull \hbox (badness 10000) in paragraph at lines 137--143 | |||
\T1/aer/m/n/12 https://www.codeproject.com/Articles/42830/Model-View-Controller- | |||
[] | |||
@@ -2007,18 +2042,18 @@ Package Fancyhdr Warning: \headheight is too small (12.0pt): | |||
This may cause the page layout to be inconsistent, however. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 149. | |||
(babel) in language on input line 150. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 149. | |||
(babel) in language on input line 150. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 149. | |||
(babel) in language on input line 150. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 149. | |||
(babel) in language on input line 150. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 149. | |||
(babel) in language on input line 150. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 149. | |||
[24]) | |||
(babel) in language on input line 150. | |||
[25]) | |||
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 78. | |||
@@ -2039,7 +2074,7 @@ Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 78. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 78. | |||
[25] | |||
[26] | |||
Package atveryend Info: Empty hook `AfterLastShipout' on input line 78. | |||
(/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.aux (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/titlepage/titlepage.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/abstract/abstract.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/einleitung.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/framework.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/prototyp.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ergebnis.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ausblick.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/fazit.aux)) | |||
Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 78. | |||
@@ -2054,12 +2089,12 @@ Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 78. | |||
) | |||
(\end occurred when \ifnum on line 5 was incomplete) | |||
Here is how much of TeX's memory you used: | |||
27336 strings out of 492970 | |||
489444 string characters out of 6133939 | |||
562056 words of memory out of 5000000 | |||
30917 multiletter control sequences out of 15000+600000 | |||
27339 strings out of 492970 | |||
489541 string characters out of 6133939 | |||
562149 words of memory out of 5000000 | |||
30920 multiletter control sequences out of 15000+600000 | |||
555998 words of font info for 62 fonts, out of 8000000 for 9000 | |||
1348 hyphenation exceptions out of 8191 | |||
58i,18n,50p,10437b,966s stack positions out of 5000i,500n,10000p,200000b,80000s | |||
Output written on /Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.pdf (30 pages). | |||
Output written on /Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.pdf (31 pages). |
@@ -8,23 +8,24 @@ | |||
\BOOKMARK [2][-]{subsection.2.1.1}{Besonderheiten\040Django's}{section.2.1}% 8 | |||
\BOOKMARK [2][-]{subsection.2.1.2}{Virtuelle\040Umgebung}{section.2.1}% 9 | |||
\BOOKMARK [2][-]{subsection.2.1.3}{Lightweight\040Directory\040Access\040Protocol}{section.2.1}% 10 | |||
\BOOKMARK [1][-]{section.2.2}{Erweiterungen}{chapter.2}% 11 | |||
\BOOKMARK [2][-]{subsection.2.2.1}{Taggable-Manager}{section.2.2}% 12 | |||
\BOOKMARK [2][-]{subsection.2.2.2}{Hilfsbibliotheken}{section.2.2}% 13 | |||
\BOOKMARK [1][-]{section.2.3}{Bootstrap}{chapter.2}% 14 | |||
\BOOKMARK [1][-]{section.2.4}{Cron}{chapter.2}% 15 | |||
\BOOKMARK [0][-]{chapter.3}{Prototyp}{}% 16 | |||
\BOOKMARK [1][-]{section.3.1}{Forschungsdesign}{chapter.3}% 17 | |||
\BOOKMARK [1][-]{section.3.2}{Organisation}{chapter.3}% 18 | |||
\BOOKMARK [2][-]{subsection.3.2.1}{Datenmodellierung}{section.3.2}% 19 | |||
\BOOKMARK [2][-]{subsection.3.2.2}{Verwaltung\040im\040Administrator-Back-end}{section.3.2}% 20 | |||
\BOOKMARK [2][-]{subsection.3.2.3}{Berechtigung\040der\040User}{section.3.2}% 21 | |||
\BOOKMARK [1][-]{section.3.3}{Funktionen}{chapter.3}% 22 | |||
\BOOKMARK [2][-]{subsection.3.3.1}{Verwalten}{section.3.3}% 23 | |||
\BOOKMARK [2][-]{subsection.3.3.2}{Abonnieren}{section.3.3}% 24 | |||
\BOOKMARK [2][-]{subsection.3.3.3}{Filtern}{section.3.3}% 25 | |||
\BOOKMARK [2][-]{subsection.3.3.4}{Benachrichtigung}{section.3.3}% 26 | |||
\BOOKMARK [0][-]{chapter.4}{Ergebnis}{}% 27 | |||
\BOOKMARK [1][-]{subsection.4.0.1}{Evaluierung}{chapter.4}% 28 | |||
\BOOKMARK [0][-]{chapter.5}{Zusammenfassung\040und\040Ausblick}{}% 29 | |||
\BOOKMARK [0][-]{chapter*.16}{Referenzen}{}% 30 | |||
\BOOKMARK [2][-]{subsection.2.1.4}{Sicherheit}{section.2.1}% 11 | |||
\BOOKMARK [1][-]{section.2.2}{Erweiterungen}{chapter.2}% 12 | |||
\BOOKMARK [2][-]{subsection.2.2.1}{Taggable-Manager}{section.2.2}% 13 | |||
\BOOKMARK [2][-]{subsection.2.2.2}{Hilfsbibliotheken}{section.2.2}% 14 | |||
\BOOKMARK [1][-]{section.2.3}{Bootstrap}{chapter.2}% 15 | |||
\BOOKMARK [1][-]{section.2.4}{Cron}{chapter.2}% 16 | |||
\BOOKMARK [0][-]{chapter.3}{Prototyp}{}% 17 | |||
\BOOKMARK [1][-]{section.3.1}{Forschungsdesign}{chapter.3}% 18 | |||
\BOOKMARK [1][-]{section.3.2}{Organisation}{chapter.3}% 19 | |||
\BOOKMARK [2][-]{subsection.3.2.1}{Datenmodellierung}{section.3.2}% 20 | |||
\BOOKMARK [2][-]{subsection.3.2.2}{Verwaltung\040im\040Administrator-Back-end}{section.3.2}% 21 | |||
\BOOKMARK [2][-]{subsection.3.2.3}{Berechtigung\040der\040User}{section.3.2}% 22 | |||
\BOOKMARK [1][-]{section.3.3}{Funktionen}{chapter.3}% 23 | |||
\BOOKMARK [2][-]{subsection.3.3.1}{Verwalten}{section.3.3}% 24 | |||
\BOOKMARK [2][-]{subsection.3.3.2}{Abonnieren}{section.3.3}% 25 | |||
\BOOKMARK [2][-]{subsection.3.3.3}{Filtern}{section.3.3}% 26 | |||
\BOOKMARK [2][-]{subsection.3.3.4}{Benachrichtigung}{section.3.3}% 27 | |||
\BOOKMARK [0][-]{chapter.4}{Ergebnis}{}% 28 | |||
\BOOKMARK [1][-]{subsection.4.0.1}{Evaluierung}{chapter.4}% 29 | |||
\BOOKMARK [0][-]{chapter.5}{Zusammenfassung\040und\040Ausblick}{}% 30 | |||
\BOOKMARK [0][-]{chapter*.16}{Referenzen}{}% 31 |
@@ -10,6 +10,7 @@ | |||
\contentsline {subsection}{\numberline {2.1.1}Besonderheiten Django's}{6}{subsection.2.1.1} | |||
\contentsline {subsection}{\numberline {2.1.2}Virtuelle Umgebung}{7}{subsection.2.1.2} | |||
\contentsline {subsection}{\numberline {2.1.3}Lightweight Directory Access Protocol}{7}{subsection.2.1.3} | |||
\contentsline {subsection}{\numberline {2.1.4}Sicherheit}{8}{subsection.2.1.4} | |||
\contentsline {section}{\numberline {2.2}Erweiterungen}{8}{section.2.2} | |||
\contentsline {subsection}{\numberline {2.2.1}Taggable-Manager}{8}{subsection.2.2.1} | |||
\contentsline {subsection}{\numberline {2.2.2}Hilfsbibliotheken}{9}{subsection.2.2.2} | |||
@@ -25,8 +26,8 @@ | |||
\contentsline {subsection}{\numberline {3.3.1}Verwalten}{18}{subsection.3.3.1} | |||
\contentsline {subsection}{\numberline {3.3.2}Abonnieren}{20}{subsection.3.3.2} | |||
\contentsline {subsection}{\numberline {3.3.3}Filtern}{20}{subsection.3.3.3} | |||
\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{20}{subsection.3.3.4} | |||
\contentsline {chapter}{\numberline {4}Ergebnis}{21}{chapter.4} | |||
\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{21}{subsection.4.0.1} | |||
\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{22}{chapter.5} | |||
\contentsline {chapter}{Referenzen}{23}{chapter*.16} | |||
\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{21}{subsection.3.3.4} | |||
\contentsline {chapter}{\numberline {4}Ergebnis}{22}{chapter.4} | |||
\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{22}{subsection.4.0.1} | |||
\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{23}{chapter.5} | |||
\contentsline {chapter}{Referenzen}{24}{chapter*.16} |
@@ -1,7 +1,7 @@ | |||
\relax | |||
\providecommand\hyper@newdestlabel[2]{} | |||
\@setckpt{chapters/ausblick}{ | |||
\setcounter{page}{22} | |||
\setcounter{page}{23} | |||
\setcounter{equation}{0} | |||
\setcounter{enumi}{0} | |||
\setcounter{enumii}{0} | |||
@@ -29,7 +29,7 @@ | |||
\setcounter{Item}{0} | |||
\setcounter{Hfootnote}{0} | |||
\setcounter{Hy@AnnotLevel}{0} | |||
\setcounter{bookmark@seq@number}{28} | |||
\setcounter{bookmark@seq@number}{29} | |||
\setcounter{NAT@ctr}{0} | |||
\setcounter{lstlisting}{0} | |||
\setcounter{section@level}{0} |
@@ -1,12 +1,12 @@ | |||
\relax | |||
\providecommand\hyper@newdestlabel[2]{} | |||
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Ergebnis}{21}{chapter.4}} | |||
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Ergebnis}{22}{chapter.4}} | |||
\@writefile{lof}{\addvspace {10\p@ }} | |||
\@writefile{lot}{\addvspace {10\p@ }} | |||
\newlabel{ch:ergebnis}{{4}{21}{Ergebnis}{chapter.4}{}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{21}{subsection.4.0.1}} | |||
\newlabel{ch:ergebnis}{{4}{22}{Ergebnis}{chapter.4}{}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{22}{subsection.4.0.1}} | |||
\@setckpt{chapters/ergebnis}{ | |||
\setcounter{page}{22} | |||
\setcounter{page}{23} | |||
\setcounter{equation}{0} | |||
\setcounter{enumi}{0} | |||
\setcounter{enumii}{0} | |||
@@ -34,7 +34,7 @@ | |||
\setcounter{Item}{0} | |||
\setcounter{Hfootnote}{0} | |||
\setcounter{Hy@AnnotLevel}{0} | |||
\setcounter{bookmark@seq@number}{28} | |||
\setcounter{bookmark@seq@number}{29} | |||
\setcounter{NAT@ctr}{0} | |||
\setcounter{lstlisting}{0} | |||
\setcounter{section@level}{0} |
@@ -1,11 +1,11 @@ | |||
\relax | |||
\providecommand\hyper@newdestlabel[2]{} | |||
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{22}{chapter.5}} | |||
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{23}{chapter.5}} | |||
\@writefile{lof}{\addvspace {10\p@ }} | |||
\@writefile{lot}{\addvspace {10\p@ }} | |||
\newlabel{ch:zusammenfassung}{{5}{22}{Zusammenfassung und Ausblick}{chapter.5}{}} | |||
\newlabel{ch:zusammenfassung}{{5}{23}{Zusammenfassung und Ausblick}{chapter.5}{}} | |||
\@setckpt{chapters/fazit}{ | |||
\setcounter{page}{23} | |||
\setcounter{page}{24} | |||
\setcounter{equation}{0} | |||
\setcounter{enumi}{0} | |||
\setcounter{enumii}{0} | |||
@@ -33,7 +33,7 @@ | |||
\setcounter{Item}{0} | |||
\setcounter{Hfootnote}{0} | |||
\setcounter{Hy@AnnotLevel}{0} | |||
\setcounter{bookmark@seq@number}{29} | |||
\setcounter{bookmark@seq@number}{30} | |||
\setcounter{NAT@ctr}{0} | |||
\setcounter{lstlisting}{0} | |||
\setcounter{section@level}{0} |
@@ -12,6 +12,7 @@ | |||
\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces Erstellen der virtuelle Umgebung im Terminal\relax }}{7}{figure.caption.7}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.3}Lightweight Directory Access Protocol}{7}{subsection.2.1.3}} | |||
\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Beispiel eines LDAP-Trees ([Orc10])\relax }}{8}{figure.caption.8}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.4}Sicherheit}{8}{subsection.2.1.4}} | |||
\@writefile{toc}{\contentsline {section}{\numberline {2.2}Erweiterungen}{8}{section.2.2}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Taggable-Manager}{8}{subsection.2.2.1}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}Hilfsbibliotheken}{9}{subsection.2.2.2}} | |||
@@ -48,7 +49,7 @@ | |||
\setcounter{Item}{0} | |||
\setcounter{Hfootnote}{0} | |||
\setcounter{Hy@AnnotLevel}{0} | |||
\setcounter{bookmark@seq@number}{15} | |||
\setcounter{bookmark@seq@number}{16} | |||
\setcounter{NAT@ctr}{0} | |||
\setcounter{lstlisting}{0} | |||
\setcounter{section@level}{0} |
@@ -18,9 +18,9 @@ | |||
\@writefile{lof}{\contentsline {figure}{\numberline {3.5}{\ignorespaces Funktion post\_edit, Auszug aus views.py.\relax }}{20}{figure.caption.15}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}Abonnieren}{20}{subsection.3.3.2}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}Filtern}{20}{subsection.3.3.3}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{20}{subsection.3.3.4}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{21}{subsection.3.3.4}} | |||
\@setckpt{chapters/prototyp}{ | |||
\setcounter{page}{21} | |||
\setcounter{page}{22} | |||
\setcounter{equation}{0} | |||
\setcounter{enumi}{0} | |||
\setcounter{enumii}{0} | |||
@@ -48,7 +48,7 @@ | |||
\setcounter{Item}{0} | |||
\setcounter{Hfootnote}{0} | |||
\setcounter{Hy@AnnotLevel}{0} | |||
\setcounter{bookmark@seq@number}{26} | |||
\setcounter{bookmark@seq@number}{27} | |||
\setcounter{NAT@ctr}{0} | |||
\setcounter{lstlisting}{0} | |||
\setcounter{section@level}{0} |
@@ -34,7 +34,7 @@ | |||
\pagenumbering{roman} | |||
%------------------------------------------------------------------------------ | |||
% dedication, acknowledgments and quotes | |||
\includepdf{AcknowledgmentsDedicationSentence/erklaerung.pdf} | |||
\includepdf{AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf} | |||
\clearpage{\thispagestyle{empty}} | |||
%------------------------------------------------------------------------------ | |||
% abstract |
@@ -53,7 +53,7 @@ Durch den einfachen Aufbau ist es au"serdem möglich diese selbst zu implementie | |||
\subsection{Virtuelle Umgebung} | |||
Wird eine prototypische Anwendung gestartet, ist es notwendig, verschiedensten Module zu verwenden und zu testen. Die Versionen dieser spielen hierbei eine entscheidende Rolle, um Konflikte zu vermeiden [Fou18]. Um diesem Problem vorzubeugen, wird eine virtuelle Umgebung implementiert. Diese besitzt einen eigenen Projektpfad, beinhaltet alle nötigen Pakete und Bibliotheken, und lässt sich nach dem Einrichten im Terminal starten. Die folgende Abbildung (2.4) zeigt das Erstellen eines neuen Ordners, das Erstellen der virtuellen Umgebung und den Aktivierungsbefehl. Ist der Name des Environment in Klammern am Kommandozeilenanfang, bedeutet das, diese ist jetzt aktiv. | |||
Wird eine prototypische Anwendung gestartet, ist es notwendig, verschiedensten Module zu verwenden und zu testen. Die Versionen dieser spielen hierbei eine entscheidende Rolle, um Konflikte zu vermeiden [Fou18]. Um diesem Problem vorzubeugen, wird eine virtuelle Umgebung implementiert. Sie besitzt einen eigenen Projektpfad, beinhaltet alle nötigen Pakete und Bibliotheken, und lässt sich nach dem Einrichten im Terminal starten. Die folgende Abbildung (2.4) zeigt das Erstellen eines neuen Ordners, das Erstellen der virtuellen Umgebung und den Aktivierungsbefehl. Ist der Name des Environment in Klammern am Kommandozeilenanfang, bedeutet das, diese ist jetzt aktiv. | |||
\begin{figure}[!h] | |||
\centering | |||
@@ -75,6 +75,9 @@ Das ldap, Lightweight Directory Access Protocol, muss als Erweiterung in die hie | |||
\hfill | |||
\end{figure} | |||
\subsection{Sicherheit} | |||
--- in hochschulserver, django bringt sicherheiten mit, crsf-token | |||
\section {Erweiterungen} | |||
Django bringt viele hilfreiche Erweiterungen mit sich, die mit einem Packagemanager einfach in die virtuelle Umgebung geladen werden können. Um das passende Add-on für ein Projekt zu finden, bietet die Plattform djangopackages.org alle Erweiterungen in übersichtlichen Tabellen mit Eigenschaften und Bewertung an. | |||
@@ -135,11 +135,13 @@ In der Detailansicht eines Artikels ist es möglich diesen durch klicken auf den | |||
\\ | |||
Einen bereits vorhandenen Artikel bearbeiten: | |||
Ähnlich wie beim Löschen eines Artikel, kann man diesen in der Detailansicht bearbeiten. Mit dem Betätigen des Bearbeiten-Buttons wird der User auf den Artikel-Editor weitergeleitet. Die Seite zeigt die Form, wie beim Erstellen eines neuen Artikels, nur dass hier die Felder bereits den Inhalt des zu Editierenden enthalten. Dazu wird in der View über den \textit{Primary Key} der Artikel einer Variable \glqq post\grqq\ zugeordnet. Daraufhin wird der instanziierte Post auf die \textit{PostForm} übertragen und in der Variable \glqq form \grqq\ zwischengespeichert. Nun werden die gleich Schritte durchlaufen, wie beim erstmaligen Erstellen eines Artikels (vgl. Abbildung 3.5.). | |||
Ähnlich wie beim Löschen eines Artikel, kann man diesen in der Detailansicht bearbeiten. Mit dem Betätigen des Bearbeiten-Buttons wird der User auf den Artikel-Editor weitergeleitet. Die Seite zeigt die Form, wie beim Erstellen eines neuen Artikels, nur dass hier die Felder bereits den Inhalt des zu Editierenden Textes enthalten. Dazu wird in der View über den \textit{Primary Key} der Artikel einer Variable \glqq post\grqq\ zugeordnet. Die bedingte Anweisung fragt in Zeile 91 der Abbildung 3.5., ob der Benutzer die Eingaben bereits zum Speichern veranlasst hat. Wird die Bedingung zunächst nicht erfüllt, rendert die Funktion lediglich die \textit{PostForm}, mit dem bereits eingepflegten Inhalt durch eine GET-Abfrage in der die Daten des Artikels als Instanz übermittelt werden (vgl. Abbildung 3.5. Zeile 100). | |||
Betätigt der Benutzer den \glqq Speichern-Button\grqq\ im Front-end wird die bedingte Abfrage in Zeile 91 erfüllt. Die POST-Abfrage ist hier notwendig, da Django nur so Daten in der Datenbank verändert. Eine Begründung hierfür ist die Art der Übertragung der Daten an den Server. \textit{POST-Requests} bündeln alle Daten, verschlüsseln diese und senden Sie dann an der Server (vgl. [Fou18c]). Dadurch ist der Vorgang einfacher kontrollierbar und mit einem \textit{csrf-Token} im Template ebenfalls gegen Cross-Site-Request-Fälschung abgesichert. Die weitere Vorgehensweise der Funktion ist identisch zum bereits erwähnten neu Erstellen eines Artikels und muss nicht weiter beschreiben. | |||
\begin{figure}[!h] | |||
\centering | |||
\includegraphics[width=0.8\textwidth]{figures/post-edit-view} | |||
\includegraphics[width=0.9\textwidth]{figures/post-edit-view} | |||
\caption{Funktion post\_edit, Auszug aus views.py.} | |||
\hfill | |||
\end{figure} |
@@ -166,5 +166,11 @@ | |||
note = "https://docs.djangoproject.com/en/dev/topics/forms/modelforms/\#the-save-method" | |||
} | |||
@article{Django-3, | |||
author = "Django Software Foundation", | |||
title = "Working with Forms", | |||
year = "2018", | |||
note = " https://docs.djangoproject.com/en/dev/topics/forms/\#using-a-form-in-a-view" | |||
} | |||
@@ -578,3 +578,101 @@ | |||
[10/Nov/2018 16:41:03] INFO [mysite:187] h | |||
[10/Nov/2018 16:45:09] INFO [mysite:176] <QuerySet [<Tag: hi>]> | |||
[10/Nov/2018 16:45:09] INFO [mysite:179] <QuerySet [<Post: test again>, <Post: Hi there>]> | |||
[13/Nov/2018 10:34:44] INFO [mysite:102] welche form? | |||
[13/Nov/2018 10:48:58] INFO [mysite:103] welche form? | |||
[13/Nov/2018 11:00:40] INFO [mysite:103] welche form? | |||
[13/Nov/2018 11:00:55] INFO [mysite:99] hier benutzen wir POST | |||
[13/Nov/2018 11:01:23] INFO [mysite:103] welche form? | |||
[13/Nov/2018 11:01:32] INFO [mysite:94] hier benutzen wir POST | |||
[13/Nov/2018 18:47:37] INFO [mysite:187] None | |||
[13/Nov/2018 18:48:34] INFO [mysite:187] None | |||
[13/Nov/2018 18:49:21] INFO [mysite:187] None | |||
[13/Nov/2018 18:53:28] INFO [mysite:187] hi | |||
[13/Nov/2018 18:55:05] INFO [mysite:187] hi | |||
[13/Nov/2018 18:59:20] INFO [mysite:187] None | |||
[13/Nov/2018 19:00:04] INFO [mysite:187] None | |||
[13/Nov/2018 19:00:14] INFO [mysite:192] post method | |||
[13/Nov/2018 19:00:14] INFO [mysite:195] form is valid | |||
[13/Nov/2018 19:00:14] INFO [mysite:200] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:00:14] INFO [mysite:203] hi | |||
[13/Nov/2018 19:00:14] INFO [mysite:205] worked out | |||
[13/Nov/2018 19:00:21] INFO [mysite:187] None | |||
[13/Nov/2018 19:00:37] INFO [mysite:192] post method | |||
[13/Nov/2018 19:00:37] INFO [mysite:195] form is valid | |||
[13/Nov/2018 19:00:37] INFO [mysite:200] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:00:37] INFO [mysite:203] second | |||
[13/Nov/2018 19:00:37] INFO [mysite:205] worked out | |||
[13/Nov/2018 19:01:01] INFO [mysite:146] post method | |||
[13/Nov/2018 19:01:01] INFO [mysite:149] form is valid | |||
[13/Nov/2018 19:01:01] INFO [mysite:154] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:01:01] INFO [mysite:157] hi | |||
[13/Nov/2018 19:01:01] INFO [mysite:159] worked out | |||
[13/Nov/2018 19:01:59] INFO [mysite:146] post method | |||
[13/Nov/2018 19:01:59] INFO [mysite:149] form is valid | |||
[13/Nov/2018 19:01:59] INFO [mysite:154] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:01:59] INFO [mysite:157] hi | |||
[13/Nov/2018 19:01:59] INFO [mysite:159] worked out | |||
[13/Nov/2018 19:03:20] INFO [mysite:146] post method | |||
[13/Nov/2018 19:03:20] INFO [mysite:149] form is valid | |||
[13/Nov/2018 19:03:20] INFO [mysite:154] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:03:20] INFO [mysite:157] second | |||
[13/Nov/2018 19:03:20] INFO [mysite:159] worked out | |||
[13/Nov/2018 19:04:16] INFO [mysite:146] post method | |||
[13/Nov/2018 19:04:16] INFO [mysite:149] form is valid | |||
[13/Nov/2018 19:04:16] INFO [mysite:154] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:04:16] INFO [mysite:157] two | |||
[13/Nov/2018 19:04:16] INFO [mysite:159] worked out | |||
[13/Nov/2018 19:04:56] INFO [mysite:187] None | |||
[13/Nov/2018 19:04:59] INFO [mysite:192] post method | |||
[13/Nov/2018 19:04:59] INFO [mysite:195] form is valid | |||
[13/Nov/2018 19:04:59] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:04:59] INFO [mysite:202] hi | |||
[13/Nov/2018 19:04:59] INFO [mysite:204] worked out | |||
[13/Nov/2018 19:06:13] INFO [mysite:187] None | |||
[13/Nov/2018 19:06:16] INFO [mysite:192] post method | |||
[13/Nov/2018 19:06:16] INFO [mysite:195] form is valid | |||
[13/Nov/2018 19:06:16] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:06:16] INFO [mysite:202] second | |||
[13/Nov/2018 19:06:16] INFO [mysite:204] worked out | |||
[13/Nov/2018 19:06:46] INFO [mysite:187] None | |||
[13/Nov/2018 19:06:49] INFO [mysite:192] post method | |||
[13/Nov/2018 19:06:49] INFO [mysite:195] form is valid | |||
[13/Nov/2018 19:06:49] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:06:49] INFO [mysite:202] bla | |||
[13/Nov/2018 19:06:49] INFO [mysite:204] worked out | |||
[13/Nov/2018 19:06:56] INFO [mysite:187] None | |||
[13/Nov/2018 19:07:02] INFO [mysite:192] post method | |||
[13/Nov/2018 19:07:02] INFO [mysite:195] form is valid | |||
[13/Nov/2018 19:07:02] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:07:02] INFO [mysite:202] mist | |||
[13/Nov/2018 19:07:37] INFO [mysite:192] post method | |||
[13/Nov/2018 19:07:37] INFO [mysite:195] form is valid | |||
[13/Nov/2018 19:07:37] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:07:37] INFO [mysite:202] mist | |||
[13/Nov/2018 19:09:22] INFO [mysite:192] post method | |||
[13/Nov/2018 19:09:22] INFO [mysite:195] form is valid | |||
[13/Nov/2018 19:09:22] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:09:22] INFO [mysite:202] strange | |||
[13/Nov/2018 19:09:22] INFO [mysite:204] worked out | |||
[13/Nov/2018 19:09:37] INFO [mysite:187] None | |||
[13/Nov/2018 19:10:10] INFO [mysite:192] post method | |||
[13/Nov/2018 19:10:10] INFO [mysite:195] form is valid | |||
[13/Nov/2018 19:10:10] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:10:10] INFO [mysite:202] hi | |||
[13/Nov/2018 19:10:10] INFO [mysite:204] worked out | |||
[13/Nov/2018 19:10:10] INFO [mysite:187] None | |||
[13/Nov/2018 19:10:49] INFO [mysite:187] None | |||
[13/Nov/2018 19:11:31] INFO [mysite:187] None | |||
[13/Nov/2018 19:11:34] INFO [mysite:187] None | |||
[13/Nov/2018 19:11:46] INFO [mysite:187] None | |||
[13/Nov/2018 19:12:23] INFO [mysite:187] None | |||
[13/Nov/2018 19:12:58] INFO [mysite:187] None | |||
[13/Nov/2018 19:14:27] INFO [mysite:157] None | |||
[13/Nov/2018 19:14:49] INFO [mysite:157] None | |||
[13/Nov/2018 19:14:53] INFO [mysite:157] hi | |||
[13/Nov/2018 19:14:57] INFO [mysite:162] post method | |||
[13/Nov/2018 19:14:57] INFO [mysite:165] form is valid | |||
[13/Nov/2018 19:14:57] INFO [mysite:169] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange'] | |||
[13/Nov/2018 19:14:57] INFO [mysite:172] test | |||
[13/Nov/2018 19:14:57] INFO [mysite:174] worked out | |||
[13/Nov/2018 19:14:57] INFO [mysite:157] None |