SEIYU 스타일의 EC 사이트 만들기 (2) Xadmin을 사용하여 관리 화면을 새로 고칩니다.
18313 단어 django-rest-framework파이썬Vue.js장고
마지막 기사
세이유풍의 EC사이트 만들기 (1) 요구 분석 및 프로젝트 초기화
Xadmin이란 무엇인가?
GitHub에 공개된 Django 관리 화면의 상위 호환 패키지.

관리 화면 본래의 기능을 확장하여 외형도 좋아집니다.

이전 기사에서 완성한 관리 화면을 Xadmin을 사용하여 리메이크하면 다음과 같이 됩니다.

또, 스타일의 전환도 가능하고, 데이터의 excel 출력등도 디폴트 기능으로서는 말하고 있습니다.

그럼, 조속히 만들어 갑니다.
Xadmin 다운로드
github의 리포지토리는 여기입니다. xadmin
django2
를 선택하여 다운로드하십시오 이 기사의 저장소에서 빼서 사용하는 것이 좋습니다.
주의사항
pip install xadmin
는 절대 하지 않습니다. 이전 버전의 xadmin을 사용하면 패키지 종속성이 다소 어려워집니다.종속 패키지 설치
다음 명령을 실행하여 xadmin에 필요한 패키지를 설치합니다.
공식 참고 링크
pip install django-crispy-forms
pip install django-import-export
pip install django-reversion
pip install django-formtools
pip install future
pip install httplib2
pip install six
파일 배치
apps와 같은 디렉토리에서 extra_apps라는 폴더를 만듭니다.
extra_apps 아래에 다운로드한 xadmin을 넣습니다.
완성 후 디렉토리 구성은 다음과 같습니다.
qiita-Django-supermarket
|-- requirements.txt
|-- README.md
|-- LICENSE
|-- CHANGELOG.md
|-- api
|-- |--api
|-- |-- |-- __init__.py
|-- |-- |-- settings.py
|-- |-- |-- urls.py
|-- |-- |-- wsgi.py
|-- |--apps
|-- |-- |-- goods
|-- |-- |-- users
|-- |--extra_apps
|-- |-- |-- xadmin
|-- |--manage.py
그런 다음 settings.py에 다음 내용을 추가합니다.
settings.py
...
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
...
INSTALLED_APPS = [
...
'crispy_forms',
'xadmin',
]
그런 다음 extra_apps를 apps와 마찬가지로
souruces Root
로 지정합니다.PyCharm의 조작 방법은
1. extra_apps를 마우스 오른쪽 버튼으로 클릭
2. Mark Directory as
3. souruces Root
users 및 goods app에 adminx.py 파일 만들기
users 앱으로 이동하여 adminx.py 파일을 만듭니다.
cd apps/users
vim adminx.py
apps/users/adminx.py
import xadmin
from xadmin import views
from .models import VerifyCode
class BaseSetting(object):
enable_themes = True
use_bootswatch = True
class GlobalSettings(object):
site_title = "ネットスーパー"
site_footer = "supermarket_Back"
class VerifyCodeAdmin(object):
list_display = ['code', 'mobile', "add_time"]
xadmin.site.register(VerifyCode, VerifyCodeAdmin)
xadmin.site.register(views.BaseAdminView, BaseSetting)
xadmin.site.register(views.CommAdminView, GlobalSettings)
그런 다음 goods 파일로 이동하여 adminx.py를 만듭니다.
cd ../goods
vim adminx.py
apps/goods/adminx.py
import xadmin
from .models import Goods, GoodsCategory, GoodsImage, GoodsCategoryBrand, Banner, HotSearchWords
from .models import IndexAd
class GoodsAdmin(object):
list_display = ["name", "click_num", "sold_num", "fav_num", "goods_num", "market_price",
"shop_price", "goods_brief", "is_new", "is_hot", "add_time"]
search_fields = ['name', ]
list_editable = ["is_hot", ]
list_filter = ["name", "click_num", "sold_num", "fav_num", "goods_num", "market_price",
"shop_price", "is_new", "is_hot", "add_time", "category__name"]
class GoodsImagesInline(object):
model = GoodsImage
exclude = ["add_time"]
extra = 1
style = 'tab'
inlines = [GoodsImagesInline]
class GoodsCategoryAdmin(object):
list_display = ["name", "category_type", "parent_category", "add_time"]
list_filter = ["category_type", "parent_category", "name"]
search_fields = ['name', ]
class GoodsBrandAdmin(object):
list_display = ["category", "image", "name", "desc"]
def get_context(self):
context = super(GoodsBrandAdmin, self).get_context()
if 'form' in context:
context['form'].fields['category'].queryset = GoodsCategory.objects.filter(category_type=1)
return context
class BannerGoodsAdmin(object):
list_display = ["goods", "image", "index"]
class HotSearchAdmin(object):
list_display = ["keywords", "index", "add_time"]
class IndexAdAdmin(object):
list_display = ["category", "goods"]
xadmin.site.register(Goods, GoodsAdmin)
xadmin.site.register(GoodsCategory, GoodsCategoryAdmin)
xadmin.site.register(Banner, BannerGoodsAdmin)
xadmin.site.register(GoodsCategoryBrand, GoodsBrandAdmin)
xadmin.site.register(HotSearchWords, HotSearchAdmin)
xadmin.site.register(IndexAd, IndexAdAdmin)
urls.py에 xadmin 용 path 추가
api/urls.py
import xadmin
urlpatterns = [
...
path('xadmin/', xadmin.site.urls),
...
]
마지막으로 마이그레이션을 수행합니다.
xadmin 내부에 migrate 파일이 있으므로 실행합니다.
python manage.py makemigrations
python manage.py migrate
여기까지 오면
python manage.py runserver
서버를 시작하고
http://127.0.0.1:8000/xadmin
에 액세스하면 xadmin에 액세스할 수 있어야 합니다.보충
앱의 표시 이름을 수정하려는 경우

아래의 두 단계를 수행합니다.
apps/goods/apps.py
from django.apps import AppConfig
class GoodsConfig(AppConfig):
name = 'goods'
verbose_name = "商品だよ"
api/setting.py
INSTALLED_APPS = [
...
'goods.apps.GoodsConfig'
...
]
수정 후 다음과 같이 됩니다.

다음 번 예고
생각보다 xadmin을 소개하는 데 시간이 걸렸습니다 
다음 번에는 단번에 API를 만들어 가고 싶습니다.
그리고 드디어 Vue.js 설정입니다.
다음 번
세이유풍의 EC사이트 만들기 (3) 장고 REST 프레임워크로 폭속 API 만들기
세이유풍의 EC사이트 만들기 (3) 장고 REST 프레임워크로 폭속 API 만들기
Reference
이 문제에 관하여(SEIYU 스타일의 EC 사이트 만들기 (2) Xadmin을 사용하여 관리 화면을 새로 고칩니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Syoitu/items/11fac037759220b30cd2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)