суббота, 14 февраля 2009 г.

django: первый бой

Для своих целей мне понадобилось небольшое веб-приложение для хранения данных о клиентах и проектах, которые я для них выполнял или выполняю. Задачи приложения примерно такие: ведение базы данных клиентов (название, телефон, эл. ящик, адрес) и проектов (заказчик, название проекта, начало работы над проектом, конец работы над проектом, цена).

При этом я давно хотел начать использовать python, django и sqlite в своих приложениях, поэтому решил начать с этого приложения, потому как оно мне нужно.

Проект создан и работа с БД настроена, теперь создаём само приложение:

python manage.py startapp clients

Затем описываем две необходимых нам модели для клиента и проекта в файле models.py


 1 # -*- coding: utf-8 -*-
2
3 from django.db import models
4
5 class Client(models.Model):
6 """Модель клиента, делающего заказ"""
7 name = models.CharField(max_length = 200)
8 phone = models.CharField(max_length = 50)
9 address = models.CharField(max_length = 200)
10 email = models.CharField(max_length = 100)
11
12 def __unicode__(self):
13 return self.name
14
15 class Project(models.Model):
16 """Проект или услуга, заказываемая клиентом"""
17 client = models.ForeignKey(Client)
18 name = models.CharField(max_length = 200)
19 begDate = models.DateTimeField('Дата начала разработки проекта')
20 endDate = models.DateTimeField('Дата окончания разработки проекта')
21 price = models.CharField(max_length = 50)
22
23 def __unicode__(self):
24 return self.name


После редактируем файл admin.py таким образом, чтобы можно было управлять записями из админки


 1 # -*- coding: utf-8 -*-
2
3 from crm.clients.models import Client
4 from crm.clients.models import Project
5 from django.contrib import admin
6
7 class ClientAdmin(admin.ModelAdmin):
8 list_display = ['name', 'address', 'phone', 'email']
9
10 admin.site.register(Client, ClientAdmin)
11
12
13 class ProjectAdmin(admin.ModelAdmin):
14 list_display = ['client', 'name', 'begDate', 'endDate', 'price']
15
16 admin.site.register(Project, ProjectAdmin)


Теперь осталось запустить команду синхронизации с БД:

python manage.py syncdb

Приложение готово, но оно помимо нужных мне функций предлагает ещё и управлять теми разделами, которые мне не нужны, поэтому создадим нового пользователя и разрешим ему управлять только клиентами и проектами. Веб-приложение с нужными функциями готово.

На сегодняшний день, django для меня самый лучший инструмент для быстрого создания веб-приложений.

Комментариев нет:

Отправить комментарий