Hallo zusammen...
Danke für eure Antworten...
Ich erwarte eine sehr, sehr geringe Last. Der User wird vielleicht 1x pro Tag darauf zugreifen, wenn überhaupt. Daher gebe ich euch Recht, dass der Entwicklungs-Server völlig ausreichen würde.
Aber: Ich sehe das ganze als einen Lernprozess. Dieses Projekt, wäre mit Hard-Codierung völlig ausreichend gewesen. Das Projekt hat aber meiner Meinung nach die richtige Grösse um anzufangen. Daher habe ich das Ganze erweiterbar, mit SQLite3 Datenbank und Apache machen wollen. Wenn dann nicht alles gleich klappt, macht das nichts. Es wird zwar in der Firma eingesetzt, ist aber logischerweise fürs Tagesgeschäft nicht wirklich wichtig. Also super Lern-Projekt um Fehler zu machen und daraus zu lernen.
Stand der Dinge:
Apache (läuft)...Nach mehreren Versuchen hat es geklappt. Ich habe meinen ersten Webserver eingerichtet. Super, bin fast schon stolz...
Aber nun habe ich leider noch ein anderes Problem, dass erst aufgetreten ist, seit ich meine Programmdateien auf dem Raspberri laufen lasse. Die Seite kann aufgerufen werden. Alles funktioniert, ausser eine Page. Da wird 'TemplateDoesNotExist' angezeigt.
Dieses Template liegt aber im gleichen Ordner wie die anderen und hat auch die gleichen Rechte.
Code: Alles auswählen
pi@raspberrypi:~/LEDController/home/templates/sites $ ls -l
total 24
-rw-rw-r-- 1 www-data www-data 970 Sep 11 21:04 base.html
-rw-rw-r-- 1 www-data www-data 1901 Sep 22 09:53 home.html
-rw-rw-r-- 1 www-data www-data 3258 Sep 22 09:45 new_String.html
-rw-rw-r-- 1 www-data www-data 354 Sep 11 21:12 root.html
-rw-rw-r-- 1 www-data www-data 1238 Sep 22 09:26 settings.html
-rw-rw-r-- 1 www-data www-data 764 Sep 20 23:59 temp.html
Es geht hier um die new_String.html. Diese will er einfach nicht finden...Meldung:
[/b]django.template.loaders.app_directories.Loader: /home/pi/LEDController/home/templates/sites/new_string.html (Source does not exist)
In den Settings.py habe ich es bereits mit dem absoluten Pfad versucht. Leider auch kein anderes Ergebnis:
Code: Alles auswählen
TEMPLATES
[{'APP_DIRS': True,
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['/home/pi/LEDController/home/templates/sites'],
'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages']}}]
Die Pfadangabe in der URL.py ist bei dieser überladen, da ich einen optionalen Parameter habe:
Code: Alles auswählen
path('neu/', new_String, name='new_String'),
path('neu/<int:pk>', new_String, name='new_String'),
Und hier noch die View dazu (oh man, die ist inzwischen etwas gewachsen, sorry

):
Code: Alles auswählen
def new_String(request, pk=None):
attribute_list = Attribut.objects.all().filter(visible=True)
placeholders = Placeholders.objects.all()
if pk == None:
active_txt = None
active_options = None
active_placeholders = None
if request.method == 'POST':
txt_display_text = request.POST.get('display_text')
m = Display_Text(text=txt_display_text)
m.save()
for werte in attribute_list:
if request.POST.get(werte.name, '') != None:
inst = Attribut_Option.objects.get(id=request.POST.get(werte.name))
n = m.dtao_set.create(attribut_option = inst)
m.save()
for werte in placeholders:
if request.POST.get('activate_' + werte.titel) != None:
datum = request.POST.get('date_' + str(werte.id))
datum = time.strftime('%d.%m.%Y', time.strptime(datum, '%Y-%m-%d'))
j = Placeholders.objects.get(id = werte.id)
k = m.dtph_set.create(placeholders=j, placeholder_value=datum)
m.save()
return redirect(home)
else:
active_txt = Display_Text.objects.get(id = pk)
active_options = DTAO.objects.raw('SELECT id, attribut_option_id from dtao where text_id= %s', [pk])
active_placeholders = DTPH.objects.raw('SELECT id, placeholders_id from dtph where text_id= %s', [pk])
if request.method == 'POST':
txt_display_text = request.POST.get('display_text')
m = Display_Text.objects.get(id = pk)
m.text = txt_display_text
m.save()
m.dtao_set.all().delete()
for werte in attribute_list:
if request.POST.get(werte.name, '') != None:
inst = Attribut_Option.objects.get(id=request.POST.get(werte.name))
n = m.dtao_set.create(attribut_option = inst)
m.dtph_set.all().delete()
m.save()
for werte in placeholders:
if request.POST.get('activate_' + werte.titel) != None:
datum = request.POST.get('date_' + str(werte.id))
datum = time.strftime('%d.%m.%Y', time.strptime(datum, '%Y-%m-%d'))
j = Placeholders.objects.get(id = werte.id)
k = m.dtph_set.create(placeholders=j, placeholder_value=datum)
m.save()
return redirect(home)
context = {'attribute': attribute_list,
'active_txt': active_txt,
'active_options': active_options,
'placeholders': placeholders,
'active_placeholders': active_placeholders,
'newString_page': 'active'}
return render(request, 'sites/new_string.html', context)
Mir gehen leider die Ideen aus, wo der Fehler noch liegen könnte. Hat jemand von euch noch eine Idee?
Danke im voraus
Roland