# -*- coding:utf-8 -*- from django.db.models import Model, CharField, DateField, IntegerField from django.contrib import admin from utils import get_models_config import models as app_models from const import CHAR_FIELD_MAX_LENGTH # Create your models here, if not created yet models_spec = get_models_config() for m_name, m_spec in models_spec.iteritems(): m_name = str(m_name.capitalize()) fields = m_spec.get('fields', []) class Meta: # At config only one form verbose_name = m_spec.get('title', '') verbose_name_plural = m_spec.get('title', '') model_attr_dict = dict( # http://stackoverflow.com/questions/7320705/python-missing-class-attribute-module-when-using-type/ __module__=app_models.__name__, Meta=Meta, ) for field in fields: field_type = field.get('type', '') if field_type == 'char': model_attr_dict[field.get('id', '')] = CharField(
# -*- coding:utf-8 -*- import json from django.shortcuts import render, get_object_or_404 from django.http import HttpResponse, Http404, HttpResponseBadRequest from django.forms.models import model_to_dict from django.forms import ModelForm from utils import get_models_config, default_for_date import models as app_models MODELS = get_models_config() def home(request): ''' Index page ''' return render(request, 'foo/index.html', {'models': MODELS}) def api(request, model_name): ''' Data API ''' if model_name not in MODELS: raise Http404() Model = getattr(app_models, model_name.capitalize())