반응형
1. 개요
- Python Django Admin 에서 외래키 연동을 하기 위한 샘플코드이다.
- 사용자 정보와 거래처정보를 연동해서 보여준다.
2. Python Django
- Django는 2005년부터 시작된 Python의 오픈 소스 웹 프레임워크이자 풀 스택 프레임워크이다.
- 일반적으로 파이썬을 웹 서비스에 쓴다고 하면 Django 또는 Flask를 쓴다고 생각하면 된다.
- 기본적으로 Model에 해당하는 DBMS는 SQLite를 사용하게 되어있으며, Django Admin 기능을 통해 쉽게 조회/편집이 가능하다.
import math
from .models import *
from api_user.models import UserInfoModel
from rangefilter.filter import DateRangeFilter
from django.contrib import admin
class UserInfoInline(admin.TabularInline):
model = UserInfoModel
list_display = ["user_id", "user_nm", "user_mobile_no", "origin_user_pw", "service_agree", "location_agree",
"marketing_agree", "person_agree", "cre_date", ]
readonly_fields = ["user_id", "user_nm", "user_mobile_no", "origin_user_pw", "service_agree", "location_agree",
"marketing_agree", "person_agree", "cre_date", ]
exclude = ["user_pw", "device_token", ]
can_delete = False
extra = 1
max_num = 10
verbose_name = '사용자'
verbose_name_plural = '사용자'
def has_change_permission(self, request, obj=None):
return False
def has_add_permission(self, request, obj=None):
return False
def has_delete_permission(self, request, obj=None):
return False
class CustInfoAdmin(admin.ModelAdmin):
list_display = ['cust_code', 'cust_name', 'cust_mbtl_no', 'cust_addr', 'div_addr', 'del_yn','cre_date',]
list_display_links = ['cust_code', 'cust_name']
list_per_page = 20
list_filter = ['del_yn', ('cre_date', DateRangeFilter)]
inlines = [UserInfoInline,]
search_fields = ['cust_code', 'cust_name', 'cust_mbtl_no', 'del_yn',]
ordering = ['cust_code']
def get_readonly_fields(self, request, obj=None):
if obj:
return ["cust_code", "cre_date",]
else:
return []
def has_add_permission(self, request):
return False
def has_change_permission(self, request, obj=None):
return True
def has_delete_permission(self, request, obj=None):
return False
admin.site.register(CustInfoModel, CustInfoAdmin)
반응형
'개발 > python' 카테고리의 다른 글
[Python] 윈도우11 설치 및 실행확인 (0) | 2023.04.05 |
---|