SlideShare une entreprise Scribd logo
1  sur  76
Télécharger pour lire hors ligne


kay@hannal.net
• 차경묵 (한날)
• 프리랜서 개발자
• 날로 먹는 Django 웹 프로그래밍 (2008)
• 날로 먹는 Django 웹 프레임워크 (2014)
• http://blog.hannal.com


https://www.facebook.com/hello.kaycha

https://github.com/hannal/pieces-of-django-admin-djangogirls-seoul




User
Profile
Product
ProductImage
Order
Profile
class Profile(models.Model):
registration_routes = (
('direct', _(' '), ),
('guestbook', _(' '), ),
('cocoa', _(' '), ),
('goggle', _(' '), ),
('navar', _(' '), ),
)
user = models.OneToOneField(settings.AUTH_USER_MODEL)
registration_route = models.CharField(_(' '), max_length=40,
choices=registration_routes,
default='direct')
Product
class Product(models.Model):
statuses = (
('active', _(' '), ),
('sold_out', _(' '), ),
('obsolete', _(' '), ),
('deactive', _(' '), ),
)
categories = (
('decoration', _(' '), ),
('pan', _(' '), ),
('roll', _(' '), ),
)
category = models.CharField(_(' '), max_length=20, choices=categories)
name = models.CharField(_(' '), max_length=100)
content = models.TextField(_(' '))
regular_price = models.PositiveIntegerField(_(' '))
selling_price = models.PositiveIntegerField(_(' '))
status = models.CharField(_(' '), max_length=20, choices=statuses)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
ProductImage
class ProductImage(models.Model):
product = models.ForeignKey(Product)
content = models.ImageField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
Order
from uuid import uuid4
class Order(models.Model):
progresses = (
('requested', _(' '), ),
('checkout_payment', _(' '), ),
('paid', _(' '), ),
('failed_payment', _(' '), ),
('prepared_product', _(' '), ),
('prepared_delivery', _(' '), ),
('ongoing_delivery', _(' '), ),
('done', _(' '), ),
)
sn = models.UUIDField(_(' '), unique=True, editable=False, default=uuid4)
user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True)
items = models.ManyToManyField(Product)
product_cost = models.IntegerField(_(' '))
progress = models.CharField(_(' '), max_length=20, choices=progresses,
default='requested')
comment = models.TextField(_(' '), null=True, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
from django.contrib import admin
from . import models
admin.site.register(models.Product)
Product object ???
__str__()
__str__()
__str__()
class Product(models.Model):
#
def __str__(self):
return f'<{self.pk}> {self.name}'
list_display
@admin.register(models.Product)
class ProductAdmin(admin.ModelAdmin):
list_display = (
'pk', 'name', 'category', 'regular_price', 'selling_price',
'status', 'created_at', 'updated_at',
)
admin.site.register(models.Product, ProductAdmin)
list_display_links
@admin.register(models.Product)
class ProductAdmin(admin.ModelAdmin):
#
list_display_links = (
'pk', 'name', 'category', 'regular_price', 'selling_price',
'status', 'created_at', 'updated_at',
)
ProductImage
ForeignKey
TabularInline
StackedInline
inlines
class ProductImageInline(admin.TabularInline):
model = models.ProductImage
@admin.register(models.Product)
class ProductAdmin(admin.ModelAdmin):
#
inlines = (ProductImageInline, )




extra
max_num
min_num
class ProductImageInline(admin.TabularInline):
model = models.ProductImage
extra = 2
max_num = 4
min_num = 1
list_filter
search_fields
date_hierarchy
@admin.register(models.Product)
class ProductAdmin(admin.ModelAdmin):
#
list_filter = ('category', 'status', )
search_fields = ('name', 'selling_price', )
date_hierarchy = 'updated_at'
search_fields list_filter
date_hierarchy
short_description
from django.utils.translation import ugettext as _
from django.utils.safestring import mark_safe
@admin.register(models.Product)
class ProductAdmin(admin.ModelAdmin):
list_display = (
'get_title_image', 'pk', 'name', 'category', 'regular_price',
'selling_price', 'status', 'created_at', 'updated_at',
)
list_display_links = (
'get_title_image', 'pk', 'name', 'category', 'regular_price',
'selling_price', 'status', 'created_at', 'updated_at',
)
#
def get_title_image(self, obj):
image = obj.productimage_set.order_by('pk').first()
if not image:
return ''
return mark_safe(f'<img src="{image.content.url}" style="width: 50px;">')
get_title_image.short_description = _(' ')
ForeignKey
fields
readonly_fields
@admin.register(models.Order)
class OrderAdmin(admin.ModelAdmin):
#
readonly_fields = ('user', 'product_cost', 'comment', )
User
User
from django.contrib.auth.models import User
admin.site.unregister(User)
from django.contrib.auth import get_user_model
user_model = get_user_model()
admin.site.unregister(user_model)
User
User
User
UserAdmin
from django.contrib.auth.admin import UserAdmin
@admin.register(user_model)
class CustomUserAdmin(UserAdmin):
list_display = UserAdmin.list_display + ('get_registration_route', )
def get_registration_route(self, obj):
try:
return obj.profile.get_registration_route_display()
except models.Profile.DoesNotExist:
return '?'
get_registration_route.short_description = _(' ')
• User.objects.filter(profile__registration_route='direct')
@admin.register(user_model)
class CustomUserAdmin(UserAdmin):
list_display = UserAdmin.list_display + ('get_registration_route', )
list_filter = UserAdmin.list_filter + ('profile__registration_route', )
def get_registration_route(self, obj):
try:
return obj.profile.get_registration_route_display()
except models.Profile.DoesNotExist:
return '?'
get_registration_route.short_description = _(' ')
admin.SimpleListFilter
lookups() tuple
queryset() QuerySet
QuerySet
from django.db.models import Count, Case, When, IntegerField
class UserOrderCountFilter(admin.SimpleListFilter):
title = _(' ')
parameter_name = 'order_count'
def lookups(self, request, model_admin):
return (
('exact-0', _(' '), ),
('exact-1', _('1 '), ),
('exact-2', _('2 '), ),
('exact-3', _('3 '), ),
('gt-3', _('3 '), ),
)
#
#
def queryset(self, request, queryset):
value = self.value()
if not value:
return queryset
try:
lookup_keyword, count = value.split('-')
count = int(count)
if count == 0:
users = models.Order.objects 
.filter(progress='done') 
.values_list('user__id')
return queryset.exclude(pk__in=users)
else:
return queryset 
.annotate(cnt=Count(Case(
When(order__progress='done', then=0),
output_field=IntegerField()
))).filter(** {f'cnt__{lookup_keyword}': count})
except Exception:
return queryset.none()
@admin.register(user_model)
class CustomUserAdmin(UserAdmin):
list_display = UserAdmin.list_display + (
'get_registration_route',
)
list_filter = UserAdmin.list_filter + (
'profile__registration_route', UserOrderCountFilter,
)
http://.../admin/auth/user/?order_count=exact-1
from django.db.models import Sum
class SumOrderCostFilter(admin.SimpleListFilter):
title = _(' ')
parameter_name = 'order_cost'
def lookups(self, request, model_admin):
return (
('lt-50000', _('5 '), ),
('gte-50000--lt-100000', _('5 10 '), ),
('gte-100000--lt-200000', _('10 20 '), ),
('gte-200000--lt-500000', _('20 50 '), ),
('gte-500000', _('50 '), ),
)
#
def queryset(self, request, queryset):
value = self.value()
if not value:
return queryset
try:
l1, l2 = value.split('--')
except ValueError:
l1, l2 = value, None
lookups = {}
for l in (l1, l2):
if not l:
continue
try:
lookup_keyword, amount = l.split('-')
lookups[f'cost__{lookup_keyword}'] = int(amount)
except ValueError:
continue
#
def queryset(self, request, queryset):
#
#
if not lookups:
return queryset.none()
try:
return queryset.filter(order__progress='done') 
.annotate(cost=Sum('order__product_cost')) 
.filter(**lookups)
except Exception:
return queryset.none()
@admin.register(user_model)
class CustomUserAdmin(UserAdmin):
list_display = UserAdmin.list_display + (
'get_registration_route',
)
list_filter = (
'profile__registration_route',
UserOrderCountFilter, SumOrderCostFilter,
)
http://.../admin/auth/user/?order_cost=lt-50000
actions
queryset
from django.contrib import messages
def change_progress_to_ongoing_delivery(modeladmin, request, queryset):
queryset.update(progress='ongoing_delivery')
messages.success(request, _(' .'))
change_progress_to_ongoing_delivery.short_description = _(' ')
@admin.register(models.Order)
class OrderAdmin(admin.ModelAdmin):
#
actions = (change_progress_to_ongoing_delivery, )
ForeignKey
class ProductOrderInline(admin.StackedInline):
model = models.Order.items.through
min_num = 1
@admin.register(models.Order)
class OrderAdmin(admin.ModelAdmin):
fields = ('progress', )
inlines = (ProductOrderInline, )
templates/admin/<app_name>/<model_name>/
change_list.html
urls.py
• https://github.com/crccheck/django-
object-actions
• pip install django-object-actions
settings.py INSTALLED_APPS
'django_object_actions'
change_list.html
from django_object_actions import DjangoObjectActions
@admin.register(user_model)
class CustomUserAdmin(DjangoObjectActions, UserAdmin):
#
change_actions = ('make_user_happy', )
def make_user_happy(self, request, obj):
messages.info(request, f'{obj} .')
# do something
make_user_happy.label = _(' ')
make_user_happy.short_description = _(' ')
list_max_show_all
@admin.register(user_model)
class CustomUserAdmin(DjangoObjectActions, UserAdmin):
#
list_per_page = 1
list_max_show_all = 1000000
날로 먹는 Django admin 활용

Contenu connexe

Tendances

PyCon KR 2018 Effective Tips for Django ORM in Practice
PyCon KR 2018 Effective Tips for Django ORM in PracticePyCon KR 2018 Effective Tips for Django ORM in Practice
PyCon KR 2018 Effective Tips for Django ORM in PracticeSeomgi Han
 
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...Edureka!
 
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운다운 정
 
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인VMware Tanzu Korea
 
BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumLiraz Shay
 
The effective use of Django ORM
The effective use of Django ORMThe effective use of Django ORM
The effective use of Django ORMYaroslav Muravskyi
 
Scalable Django Architecture
Scalable Django ArchitectureScalable Django Architecture
Scalable Django ArchitectureRami Sayar
 
SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?태환 김
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2fishwarter
 
이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정Arawn Park
 
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향Young-Ho Cho
 
Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Jin wook
 
Nest.js Introduction
Nest.js IntroductionNest.js Introduction
Nest.js IntroductionTakuya Tejima
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민종민 김
 
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 정주 김
 
Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith :: AWS Summi...
Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith  :: AWS Summi...Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith  :: AWS Summi...
Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith :: AWS Summi...Amazon Web Services Korea
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 Yong Joon Moon
 
Nestjs MasterClass Slides
Nestjs MasterClass SlidesNestjs MasterClass Slides
Nestjs MasterClass SlidesNir Kaufman
 

Tendances (20)

PyCon KR 2018 Effective Tips for Django ORM in Practice
PyCon KR 2018 Effective Tips for Django ORM in PracticePyCon KR 2018 Effective Tips for Django ORM in Practice
PyCon KR 2018 Effective Tips for Django ORM in Practice
 
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
 
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
 
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
 
BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and Selenium
 
The effective use of Django ORM
The effective use of Django ORMThe effective use of Django ORM
The effective use of Django ORM
 
Scalable Django Architecture
Scalable Django ArchitectureScalable Django Architecture
Scalable Django Architecture
 
ATG Best Practices
ATG Best Practices ATG Best Practices
ATG Best Practices
 
SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
 
이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정
 
NestJS
NestJSNestJS
NestJS
 
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향
 
Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략
 
Nest.js Introduction
Nest.js IntroductionNest.js Introduction
Nest.js Introduction
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
 
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
 
Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith :: AWS Summi...
Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith  :: AWS Summi...Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith  :: AWS Summi...
Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith :: AWS Summi...
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
Nestjs MasterClass Slides
Nestjs MasterClass SlidesNestjs MasterClass Slides
Nestjs MasterClass Slides
 

Similaire à 날로 먹는 Django admin 활용

Optimization in django orm
Optimization in django ormOptimization in django orm
Optimization in django ormDenys Levchenko
 
Lo nuevo de Django 1.7 y 1.8
Lo nuevo de Django 1.7 y 1.8Lo nuevo de Django 1.7 y 1.8
Lo nuevo de Django 1.7 y 1.8pedroburonv
 
Gae Meets Django
Gae Meets DjangoGae Meets Django
Gae Meets Djangofool2nd
 
Django Class-based views (Slovenian)
Django Class-based views (Slovenian)Django Class-based views (Slovenian)
Django Class-based views (Slovenian)Luka Zakrajšek
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to DjangoJoaquim Rocha
 
Тестирование и Django
Тестирование и DjangoТестирование и Django
Тестирование и DjangoMoscowDjango
 
Aplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneAplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneRafael Felix da Silva
 
Form demoinplaywithmysql
Form demoinplaywithmysqlForm demoinplaywithmysql
Form demoinplaywithmysqlKnoldus Inc.
 
What’S New In Newforms Admin
What’S New In Newforms AdminWhat’S New In Newforms Admin
What’S New In Newforms AdminDjangoCon2008
 
Django Admin: Widgetry & Witchery
Django Admin: Widgetry & WitcheryDjango Admin: Widgetry & Witchery
Django Admin: Widgetry & WitcheryPamela Fox
 
Pruebas unitarias con django
Pruebas unitarias con djangoPruebas unitarias con django
Pruebas unitarias con djangoTomás Henríquez
 
Gail villanueva add muscle to your wordpress site
Gail villanueva   add muscle to your wordpress siteGail villanueva   add muscle to your wordpress site
Gail villanueva add muscle to your wordpress sitereferences
 
Django Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, TricksDjango Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, TricksShawn Rider
 
PyCon 2010 SQLAlchemy tutorial
PyCon 2010 SQLAlchemy tutorialPyCon 2010 SQLAlchemy tutorial
PyCon 2010 SQLAlchemy tutorialjbellis
 
laravel tricks in 50minutes
laravel tricks in 50minuteslaravel tricks in 50minutes
laravel tricks in 50minutesBarang CK
 

Similaire à 날로 먹는 Django admin 활용 (20)

Optimization in django orm
Optimization in django ormOptimization in django orm
Optimization in django orm
 
Django Vs Rails
Django Vs RailsDjango Vs Rails
Django Vs Rails
 
Lo nuevo de Django 1.7 y 1.8
Lo nuevo de Django 1.7 y 1.8Lo nuevo de Django 1.7 y 1.8
Lo nuevo de Django 1.7 y 1.8
 
Gae Meets Django
Gae Meets DjangoGae Meets Django
Gae Meets Django
 
Django Class-based views (Slovenian)
Django Class-based views (Slovenian)Django Class-based views (Slovenian)
Django Class-based views (Slovenian)
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
 
Тестирование и Django
Тестирование и DjangoТестирование и Django
Тестирование и Django
 
Solid angular
Solid angularSolid angular
Solid angular
 
Aplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneAplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com Backbone
 
Form demoinplaywithmysql
Form demoinplaywithmysqlForm demoinplaywithmysql
Form demoinplaywithmysql
 
What’S New In Newforms Admin
What’S New In Newforms AdminWhat’S New In Newforms Admin
What’S New In Newforms Admin
 
Django Admin: Widgetry & Witchery
Django Admin: Widgetry & WitcheryDjango Admin: Widgetry & Witchery
Django Admin: Widgetry & Witchery
 
What's new in Django 1.2?
What's new in Django 1.2?What's new in Django 1.2?
What's new in Django 1.2?
 
Clean Javascript
Clean JavascriptClean Javascript
Clean Javascript
 
Django Heresies
Django HeresiesDjango Heresies
Django Heresies
 
Pruebas unitarias con django
Pruebas unitarias con djangoPruebas unitarias con django
Pruebas unitarias con django
 
Gail villanueva add muscle to your wordpress site
Gail villanueva   add muscle to your wordpress siteGail villanueva   add muscle to your wordpress site
Gail villanueva add muscle to your wordpress site
 
Django Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, TricksDjango Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, Tricks
 
PyCon 2010 SQLAlchemy tutorial
PyCon 2010 SQLAlchemy tutorialPyCon 2010 SQLAlchemy tutorial
PyCon 2010 SQLAlchemy tutorial
 
laravel tricks in 50minutes
laravel tricks in 50minuteslaravel tricks in 50minutes
laravel tricks in 50minutes
 

Dernier

Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyPooja Nehwal
 
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Delhi Call girls
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxraffaeleoman
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Pooja Nehwal
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesPooja Nehwal
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024eCommerce Institute
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Chameera Dedduwage
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Vipesco
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Kayode Fayemi
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubssamaasim06
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaKayode Fayemi
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )Pooja Nehwal
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...henrik385807
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AITatiana Gurgel
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxmohammadalnahdi22
 
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024eCommerce Institute
 
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, YardstickSaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, Yardsticksaastr
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...Sheetaleventcompany
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Hasting Chen
 

Dernier (20)

Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
 
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubs
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New Nigeria
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AI
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
 
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
 
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, YardstickSaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
 

날로 먹는 Django admin 활용