Programistycznie w kodzie, bez renderowania HTML – formularze możesz wykorzystywać jako narzędzie do walidacji danych w Twojej aplikacji.
Niezależnie od tego, czy dane pochodzą od użytkownika, czy są generowane automatycznie w kodzie.
To oznacza, że możesz korzystać z formularzy Django tylko do walidacji danych, bez potrzeby tworzenia i wyświetlania ich w interfejsie HTML.
Formularze Django są potężnym narzędziem walidacji danych, działającym: dla danych przesyłanych przez użytkowników, jak i danych generowanych w backendzie.
Jak korzystać z formularzy Django bez HTML?
# Załóżmy, że masz model Post z polem SlugField, który wymaga poprawnego formatu sluga:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
slug = models.SlugField(unique=True, max_length=200)
content = models.TextField()
I teraz chcesz upewnić się, że dane (np. zewnętrzne API lub ręcznie dodane w kodzie) mają poprawny format,
zanim zapiszesz je w bazie danych. Możesz użyć formularza do walidacji danych programistycznie:
from django import forms
from .models import Post
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ['title', 'slug', 'content']
# Dane, które chcesz zweryfikować (np. dane wejściowe od zewnętrznego źródła)
data = {
'title': 'Przykładowy post',
'slug': 'Nieprawidłowy Slug!', # Niepoprawny format
'content': 'Treść przykładowego posta',
}
# Utworzenie instancji formularza z danymi
form = PostForm(data=data)
if form.is_valid():
# Dane są poprawne, można je zapisać
post = form.save()
print(f"Zapisano post: {post}")
else:
# Dane są niepoprawne – wyświetl błędy
print(f"Błędy walidacji: {form.errors}")
Formularz automatycznie sprawdza:
Czy dane są zgodne z wymaganiami modelu (SlugField wymaga poprawnego formatu sluga).
Czy dane są kompletne i spełniają inne ograniczenia (np. maksymalną długość pól).
Jeśli dane są poprawne, można je zapisać w bazie (form.save()).
Jeśli dane są błędne, formularz wygeneruje szczegółowe błędy walidacji, które można obsłużyć.
Kiedy warto używać formularzy bez HTML?
- gdy pobierasz dane z API, plików CSV lub innych systemów, możesz użyć formularzy Django do ich walidacji przed zapisaniem w bazie danych
- jeśli w Twoim kodzie generujesz dane dynamicznie (np. na podstawie algorytmów lub obliczeń), formularze mogą pomóc w upewnieniu się, że
dane są zgodne z regułami Twojego modelu
- formularze są świetnym narzędziem do testowania walidacji modelu w kodzie