Můj web

Django administrace DB tabulky

Publikováno 22.8.2012

Používám často Django pro správu obsahu DB tabulek ne příliš zkušenými uživateli / klienty. Nemůžu jim nabídnout phpmyadmin nebo adminer – to je pro ně příliš silné i odborné. Django je z tohoto pohledu velmi šikovné. A přidat do něj další DB tabulku je tak snadné.

Předpokládám, že máme Django na serveru rozběhané. Máme také funkční projekt a v něm aplikaci. Chceme jen přidat administraci další DB tabulky. Kam všude je potřeba sáhnout?

1. Nadefinuji nový model

Do souboru projects/myproject/apps/myapp/models.py přidáne definici modelu:

class Book(models.Model):

  name = models.CharField(_("Name"), max_length=150)
  author = models.CharField(_("Author"), max_length=150)

  class Meta:
    verbose_name = _("Book")
    verbose_name_plural = _("Books")

  def __unicode__(self):
    return self.name

Jak přeložit řetězce Name, Author, Books jsem psal již dříve. Co znamenají jednotlivé třídy a proměnné vysvětlovat nebudu. K tomu je dokumentace.

2. Zaregistruji DB tabulku do administrace

Do souboru projects/myproject/apps/myapp/admin.py naimportuji nový model a zaregistruji ho:

from apps.comunica.models import Book
from django.contrib import admin

admin.site.register(Book)

Můžu samozřejmě udělat různé změny oproti standardní administraci tabulky (pomocí třídy BookAdmin), ale tím se teď zabývat nebudu. Stačí mi základní administrace. Zbývá už tedy jen poslední krok.

3. Vygenerování DB tabulky

V shellu z adresáře projects/myproject/ spustím příkaz:

python manage.py syncdb

Tím se mi provede v databází SQL příkaz CREATE TABLE podle nadefinovaného modelu. Na admin stránce svého projektu pak vidím administraci nové tabulky book.

 

Komentáře

Komentáře jsou vypnuty.