@@ -0,0 +1,4 @@
|
|||||||
|
Django=1.10.6
|
||||||
|
PyMySQL=0.7.9
|
||||||
|
xlwt=1.0.0
|
||||||
|
xlrd=1.2.0
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
# Django-ERP
|
||||||
|
Django-ERP是一款基于Django开发的ERP管理软件,包含常用的销售管理、采购管理、库存管理、组织管理等,支持按项目归集费用,支持工作流审批,支持采购单、报价单的批量导入。
|
||||||
|
|
||||||
|
Forked from <a href="https://github.com/zhuinfo/Django-ERP">zhuinfo Django-ERP</a> 感谢他的付出。
|
||||||
|
|
||||||
|
# 安装指南
|
||||||
|
|
||||||
|
> 我的开发、测试环境是Python2.7的,所以这个文档大多数情况我默认会使用这个条件,有个别测试不到位的可能还需要慢慢完善。
|
||||||
|
|
||||||
|
请先确保您已安装了Python 2.7,并已配置好了数据库,本文档会略过这部分内容(理论上Django是可以支持MYSql、PGSQL、SQLite、Oracle等主流数据库的,但是建议不要嘬,用自己熟悉的数据库,因为数据是无价的。)
|
||||||
|
验证方法请通过python --version查看版本,以及数据库 确认用户名和密码是否登录正常
|
||||||
|
|
||||||
|
后续我争取不上requirements.txt,远期目标我个人是希望能做个dock镜像,并让它能慢慢顺着Python3和新版本的django平滑过渡上去。
|
||||||
|
|
||||||
|
## 数据库配置
|
||||||
|
|
||||||
|
数据库配置项在mis/settings.py文件中
|
||||||
|
在88-96行为Mysql数据库配置
|
||||||
|
|
||||||
|
```
|
||||||
|
DATABASES = {
|
||||||
|
'default': {
|
||||||
|
'ENGINE': 'django.db.backends.mysql',#MYSQL类型数据库,Python会依赖MySQL的驱动器
|
||||||
|
'HOST': 'localhost',#数据库主机地址
|
||||||
|
'NAME': 'mis',#数据库名称
|
||||||
|
'USER': 'root',#数据库用户名(建议不要加入root敢死队)
|
||||||
|
'PASSWORD': 'root',#数据库密码
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## 克隆代码
|
||||||
|
> git clone https://github.com/bg4hkq/Django-ERP.git
|
||||||
|
|
||||||
|
|
||||||
|
## 导入数据库
|
||||||
|
> mysql -uroot -proot mis < Install/mis.sql
|
||||||
|
|
||||||
|
## 运行测试服务器
|
||||||
|
> python manage.py runserver
|
||||||
|
|
||||||
|
## 修改管理员账户密码
|
||||||
|
```
|
||||||
|
C:\Django-ERP>python manage.py changepassword admin
|
||||||
|
|
||||||
|
You have 3 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth.
|
||||||
|
Run 'python manage.py migrate' to apply them.
|
||||||
|
Changing password for user 'admin'
|
||||||
|
Password:
|
||||||
|
Password (again):
|
||||||
|
Password changed successfully for user 'admin'
|
||||||
|
|
||||||
|
C:\Django-ERP>
|
||||||
|
```
|
||||||
|
|
||||||
|
# 排错
|
||||||
|
|
||||||
|
## MYSQL驱动错误
|
||||||
|
```
|
||||||
|
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
|
||||||
|
```
|
||||||
|
|
||||||
|
出现No module named MySQLdb是django找不到MySQL驱动导致的问题,所以需要先安装一个数据库驱动。
|
||||||
|
|
||||||
+1
-1
@@ -4,7 +4,7 @@ from django.forms import models
|
|||||||
from django.forms import fields,TextInput,Textarea
|
from django.forms import fields,TextInput,Textarea
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.contrib.contenttypes.generic import GenericTabularInline
|
from django.contrib.contenttypes.admin import GenericTabularInline
|
||||||
from common import generic
|
from common import generic
|
||||||
from basedata.models import ValueList,ValueListItem,Address,Partner,BankAccount,Project,Measure,Material,Brand,\
|
from basedata.models import ValueList,ValueListItem,Address,Partner,BankAccount,Project,Measure,Material,Brand,\
|
||||||
Category,Warehouse,TechnicalParameterName,TechnicalParameterValue,Trade,ExpenseAccount,Employee,Family,Education,\
|
Category,Warehouse,TechnicalParameterName,TechnicalParameterValue,Trade,ExpenseAccount,Employee,Family,Education,\
|
||||||
|
|||||||
+1
-1
@@ -2,5 +2,5 @@ from django.conf.urls import include, url,static
|
|||||||
import basedata.views
|
import basedata.views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r"dataimport/(?P<object_id>\d+)/action", 'basedata.views.action_import'),
|
url(r"dataimport/(?P<object_id>\d+)/action", basedata.views.action_import),
|
||||||
]
|
]
|
||||||
|
|||||||
+5
-5
@@ -2,9 +2,9 @@ from django.conf.urls import include, url,static
|
|||||||
import invent.views
|
import invent.views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r"stockin/(?P<object_id>\d+)/cin", 'invent.views.action_in'),
|
url(r"stockin/(?P<object_id>\d+)/cin", invent.views.action_in),
|
||||||
url(r"initialinventory/(?P<object_id>\d+)/cin", 'invent.views.action_init'),
|
url(r"initialinventory/(?P<object_id>\d+)/cin", invent.views.action_init),
|
||||||
url(r"stockout/(?P<object_id>\d+)/out", 'invent.views.action_out'),
|
url(r"stockout/(?P<object_id>\d+)/out", invent.views.action_out),
|
||||||
url(r"warereturn/(?P<object_id>\d+)/cin", 'invent.views.action_return'),
|
url(r"warereturn/(?P<object_id>\d+)/cin", invent.views.action_return),
|
||||||
url(r"wareadjust/(?P<object_id>\d+)/adjust", 'invent.views.action_adjust'),
|
url(r"wareadjust/(?P<object_id>\d+)/adjust", invent.views.action_adjust),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
#! /usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import pymysql
|
||||||
|
pymysql.install_as_MySQLdb()
|
||||||
|
#解决mysql-python的历史遗留问题(Yuri_2017-04-29)
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
|
||||||
admin.site.site_header = 'Django-ERP'
|
admin.site.site_header = 'Django-ERP'
|
||||||
|
|||||||
+7
-9
@@ -1,19 +1,17 @@
|
|||||||
from django.conf.urls import include, url,static
|
from django.conf.urls import include, url, static
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from mis import settings
|
from mis import settings
|
||||||
import workflow
|
import workflow.views
|
||||||
import invent.urls
|
import invent.urls
|
||||||
import basedata.urls
|
import basedata.urls
|
||||||
import selfhelp.urls
|
import selfhelp.urls
|
||||||
import mis
|
import mis.views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
# Examples:
|
url(r'^$', mis.views.home),
|
||||||
url(r'^$', 'mis.views.home'),
|
url(r"^admin/(?P<app>\w+)/(?P<model>\w+)/(?P<object_id>\d+)/start", workflow.views.start),
|
||||||
# url(r'^blog/', include('blog.urls')),
|
url(r"^admin/(?P<app>\w+)/(?P<model>\w+)/(?P<object_id>\d+)/approve/(?P<operation>\d+)", workflow.views.approve),
|
||||||
url(r"^admin/(?P<app>\w+)/(?P<model>\w+)/(?P<object_id>\d+)/start",'workflow.views.start'),
|
url(r"^admin/(?P<app>\w+)/(?P<model>\w+)/(?P<object_id>\d+)/restart/(?P<instance>\d+)", workflow.views.restart),
|
||||||
url(r"^admin/(?P<app>\w+)/(?P<model>\w+)/(?P<object_id>\d+)/approve/(?P<operation>\d+)",'workflow.views.approve'),
|
|
||||||
url(r"^admin/(?P<app>\w+)/(?P<model>\w+)/(?P<object_id>\d+)/restart/(?P<instance>\d+)",'workflow.views.restart'),
|
|
||||||
url(r'^admin/', include(admin.site.urls)),
|
url(r'^admin/', include(admin.site.urls)),
|
||||||
url(r'^admin/invent/', include(invent.urls)),
|
url(r'^admin/invent/', include(invent.urls)),
|
||||||
url(r'^admin/basedata/', include(basedata.urls)),
|
url(r'^admin/basedata/', include(basedata.urls)),
|
||||||
|
|||||||
+1
-1
@@ -2,5 +2,5 @@ from django.conf.urls import include, url,static
|
|||||||
import selfhelp.views
|
import selfhelp.views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r"(?P<model>\w+)/(?P<object_id>\d+)/pay", 'selfhelp.views.pay_action'),
|
url(r"(?P<model>\w+)/(?P<object_id>\d+)/pay", selfhelp.views.pay_action),
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user