23. # eldemo/elinux/models.py: from django.db import models from datetime import date class Noticia(models.Model): fecha = models.DateField( default=date.today) titulo = models.CharField(max_length=80) contenido = models.TextField()
24. class Expositor(models.Model): nombre = models.CharField(max_length=80, unique=True) foto = models.ImageField( upload_to="fotos") resena = models.TextField(null=True, blank=True) invitado = models.BooleanField()
25. class Charla(models.Model): titulo = models.CharField(max_length=120, unique=True) expositor = models.ForeignKey(Expositor)
28. BEGIN; CREATE TABLE "elinux_noticia" ( "id" serial NOT NULL PRIMARY KEY, "titulo" varchar(80) NOT NULL, "contenido" text NOT NULL ) ; CREATE TABLE "elinux_expositor" ( "id" serial NOT NULL PRIMARY KEY, "nombre" varchar(80) NOT NULL UNIQUE, "foto" varchar(100) NOT NULL, "resena" text NULL ) ; CREATE TABLE "elinux_charla" ( "id" serial NOT NULL PRIMARY KEY, "titulo" varchar(120) NOT NULL UNIQUE, "expositor_id" integer NOT NULL REFERENCES "elinux_expositor" ("id") DEFERRABLE INITIALLY DEFERRED ) ; CREATE INDEX "elinux_charla_expositor_id" ON "elinux_charla" ("expositor_id"); COMMIT;
29. # Python: class Charla(models.Model): titulo = models.CharField(max_length=120, unique=True) expositor = models.ForeignKey(Expositor) -- SQL: CREATE TABLE "elinux_charla" ( "id" serial NOT NULL PRIMARY KEY, "titulo" varchar(120) NOT NULL UNIQUE, "expositor_id" integer NOT NULL REFERENCES "elinux_expositor" ("id") DEFERRABLE INITIALLY DEFERRED ); CREATE INDEX "elinux_charla_expositor_id" ON "elinux_charla" ("expositor_id");
64. from django import forms class ContactForm(forms.Form): nombre = forms .CharField(max_length=200) email = forms .EmailField() titulo = forms .CharField(max_length=200) texto = forms .CharField( widget=forms.Textarea)
65. def contacto(request): if request.method == 'POST': form = ContactForm(request.POST) if form.is_valid(): # TODO: Enviar el mail return HttpResponseRedirect('/') else: form = ContactForm() return render_to_response( "elinux/contacto.html", {'form': form})
76. from django.contrib.syndication.feeds import Feed from elinux.models import Noticia class NoticiasFeed(Feed): title = "Noticias ELinux" link = "/noticias" description = "Noticias Encuentro Linux 2008" def items(self): return Noticia.objects.all()
77.
78. El framework web para perfeccionistas con deadlines 3. Templates