Giter VIP home page Giter VIP logo

qtdjango's Introduction

Preambula

QtDjango is library to connect to django-piston powered server and use it's models in PyQt application

Downloads

PyPi page

Installing

easy_install qtdjango

Using

Server side

Models modification

First of all, you need make some modifications of your models. Replace this line in every models.py file:

from django.db import models

by lines:

try:
    from django.db import models
except ImportError:
    from qtdjango import models

Then, install django-piston and add qtdjango. Add to your settings.py: INSTALLED_APPS += 'qtdjango.django_qtdjango' #list of apps that must be passed throught qtdjango api QTDJANGO_APPS = ( "list", "of", "apps")

Add to your urls.py: urlpatterns = patterns( #.... some urls .... #qtdjango api url (r'^api/', include('qtdjango.django_qtdjango.urls')), )

That's all with server-side

Client side

Models

Import you models transparently from you django application package:

from qtdjango.models import load_from_django
models = load_from_django("your base package of server", ["list","of","application","names"])

from qtdjango.modelsmanager import ModelsManager

ADDRESS = "http://127.0.0.1:8000"
API_PATH= "/api/"
mm = ModelsManager(ADDRESS, API_PATH, "/path/to/your/django/project", \
                          ["list", "of", "apps"],)

current_module =__import__(__name__)
mm.do_models_magic_with_module(current_module)

Then, mm object will load models from django server. You could create some module, for example, models.py in your PyQt client applications, and put in it that code. Then, you will coult access to model classes like from models import MyModel

You will can sealessly throuth net make django-like calls:

MyModel.get(1).one_field
x = MyModel.filter("one_field"=12,"foreinkeyfield__foreign_keys_field"="some value")
x[0].foreingkeyfield.foreing_keys_field

qtdjango's People

Contributors

darvin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

actuarial-tools

qtdjango's Issues

ModelsManager

ModelsManager, models.py
в конструкторе параметры -путь к джанге, список приложений и т.д., логин пароль к джанге
сохраняет в себе вытащенные модели
есть функция enchance_module_by_models(module), которая втыкает сохраненные модели в указанный модуль
функция is_dumped, возвращает все ли модели менеджера сохраннены
функция dump сохраняет модели на сервер
add_notify - добавляет функцию в список, который вызывается в конце успешного сохранения

При вытаскивании моделей добавляет себя к ним в .models_manager, через него осуществляются все операции с джангой

создается в mainforms

сортировка классов и инстансов Моделей

операция сравнения классов и инстансов:
если есть форейгнфилд на другой класс, тогда класс меньше этого класса
инстансы аналогично
нужно для безпроблемного дампа и лоада моделей

инлайн виды

инлайн вид - список всех привязанных к модели моделей, при двойном щелчке открывается подробный вид модели

инлайн вид это виджет который в себе имеет вид список, фильтрованный по модели #40

inline_views = ((Viewname, filterfield),)
(FixUndetailViewWithbuttons, "report")

UndetailView.edit_undumped_only

статический параметр, если установлен в False, тогда кнопки едит/делете доступны и для сохраненных строчек

фильты для detailview

фильтры для detailview.
удалить грязный хак, заменить на передачу параметра фильтер в base view

разобраться с терминами dump, save и т.д.

Field:
to_raw - преобразовать из того что берется с сервера по json
from_raw - преобразовать в то что кидается на сервер
to_unicode - преобразовать в юникодную строку (исключительно для qtmodels - в таблички писать)

Widget:
setData - принимает чистое содержимое поля!
getData - отдает чистое содержимое поля!

Model:
save - валидировать + сохранить инстанцию модели
dump - сбросить на сервер
load - взять с сервера

view.main_view

Главный вид - это параметр, нужный для "переходов" #10
модель из списка своих видов может вернуть главный

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.