You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.7 KiB
2.7 KiB
Django formuláře
Nejprve si zjistíme, jestli jsme ve virtualním prostředí pro python
(venv) C:\pythonProjects\Django : - ukazka cmd prostředí
Můžeme pokračovat:
- vytvoření virtualního prostředi
python -m venv .venv
- Aktivace virtuálního prostředí
.venv\Scripts\activate.bat
- Instalace frameworku Django
(.venv) pip install Django
- Založení Django projektu
(.venv) django-admin startproject název_projektu .
Nezapomenout na TEČKU na konci příkazu (jinak to bude složitější složkování)
- Založení Django aplikace
(.venv) python manage.py startapp název_aplikace
a následné přidání název_aplikace do název_projektu/settings.py do kolonky INSTALLED_APPS
- vytvoření základního modelu v název_projektu/models.py
from django.db import models
class feedbackModel(models.Model):
nazev = models.CharField(max_length=100)
zprava = models.TextField(max_length=10000)
def __str__(self):
return self.nazev + " " + self.zprava
- vytvoření souboru forms.py ve složce název_aplikace
- Přídání IndexView do nazev_projektu/urls.py a název_aplikace/views.py
urls.py -> přídáme jen to, co je ve "** **"
from django.contrib import admin
from django.urls import path
**from form.views import indexView**
urlpatterns = [
path('admin/', admin.site.urls),
**path('',indexView),**
]
views.py
from django.shortcuts import render
from .forms import feedbackForm
def indexView(request):
form = feedbackForm
if request.method == "POST":
#print(request.POST) #potrebuju zkontrolovani
form = feedbackForm(request.POST)
if form.is_valid():
form.save()
context = {'form':form}
return render(request,"index.html", context)
- vytvoříme složku templates v složce s aplikaci a vytvoříme ve složce jestě soubor index.html
<h1>Feedback formular</h1>
<form action="" method="post">
{% csrf_token %}
{{form}}
<input type="submit">
</form>
- Přidat model do admin.py
from django.contrib import admin
from .models import feedbackModel
admin.site.register(feedbackModel)
- zkontrolujeme databázi (migrujeme) a vytvoříme si SuperUser
manage.py makemigrations
manage.py migrate
manage.py createsuperuser
- HOTOVO - vložíme nějaké texty a zkontrolujeme admin panel
Postup pro hezčí formulář
- nainstalovat crispy_forms
(.venv) pip install django-crispy-forms
- vložit na začátek souboru index.html
{% load crispy_forms_tags %}
- upravit v index.html
{{form}}
na {{form | crispy}}
postup při importu
(Work in progress)