SlideShare uma empresa Scribd logo
1 de 76
Baixar para ler offline


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 활용

Mais conteúdo relacionado

Mais procurados

The effective use of Django ORM
The effective use of Django ORMThe effective use of Django ORM
The effective use of Django ORMYaroslav Muravskyi
 
SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?태환 김
 
Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson AEM HUB
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 Yong Joon Moon
 
The Best (and Worst) of Django
The Best (and Worst) of DjangoThe Best (and Worst) of Django
The Best (and Worst) of DjangoJacob Kaplan-Moss
 
Django for Beginners
Django for BeginnersDjango for Beginners
Django for BeginnersJason Davies
 
Introduction Django
Introduction DjangoIntroduction Django
Introduction DjangoWade Austin
 
HTL(Sightly) - All you need to know
HTL(Sightly) - All you need to knowHTL(Sightly) - All you need to know
HTL(Sightly) - All you need to knowPrabhdeep Singh
 
엘라스틱서치 실무 가이드_202204.pdf
엘라스틱서치 실무 가이드_202204.pdf엘라스틱서치 실무 가이드_202204.pdf
엘라스틱서치 실무 가이드_202204.pdf한 경만
 
Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Jin wook
 
AEM Sightly Template Language
AEM Sightly Template LanguageAEM Sightly Template Language
AEM Sightly Template LanguageGabriel Walt
 
Learn REST API with Python
Learn REST API with PythonLearn REST API with Python
Learn REST API with PythonLarry Cai
 
이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정Arawn Park
 
Angular 2.0 forms
Angular 2.0 formsAngular 2.0 forms
Angular 2.0 formsEyal Vardi
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introductionRasheed Waraich
 
[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성NAVER D2
 
[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화NAVER D2
 
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]MongoDB
 

Mais procurados (20)

The effective use of Django ORM
The effective use of Django ORMThe effective use of Django ORM
The effective use of Django ORM
 
SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?
 
Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
The Best (and Worst) of Django
The Best (and Worst) of DjangoThe Best (and Worst) of Django
The Best (and Worst) of Django
 
Django for Beginners
Django for BeginnersDjango for Beginners
Django for Beginners
 
Introduction Django
Introduction DjangoIntroduction Django
Introduction Django
 
HTL(Sightly) - All you need to know
HTL(Sightly) - All you need to knowHTL(Sightly) - All you need to know
HTL(Sightly) - All you need to know
 
엘라스틱서치 실무 가이드_202204.pdf
엘라스틱서치 실무 가이드_202204.pdf엘라스틱서치 실무 가이드_202204.pdf
엘라스틱서치 실무 가이드_202204.pdf
 
Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략
 
AEM Sightly Template Language
AEM Sightly Template LanguageAEM Sightly Template Language
AEM Sightly Template Language
 
Learn REST API with Python
Learn REST API with PythonLearn REST API with Python
Learn REST API with Python
 
이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정
 
Angular 2.0 forms
Angular 2.0 formsAngular 2.0 forms
Angular 2.0 forms
 
DJango
DJangoDJango
DJango
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
 
django
djangodjango
django
 
[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성
 
[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화
 
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
 

Semelhante a 날로 먹는 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
 

Semelhante a 날로 먹는 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
 

Último

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
 
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
 
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
 
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
 
Air breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animalsAir breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animalsaqsarehman5055
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubssamaasim06
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxraffaeleoman
 
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
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar TrainingKylaCullinane
 
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
 
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
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
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxmohammadalnahdi22
 
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
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMoumonDas2
 
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
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Vipesco
 
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
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfSenaatti-kiinteistöt
 
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxNikitaBankoti2
 

Último (20)

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
 
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)
 
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...
 
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
 
Air breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animalsAir breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animals
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubs
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
 
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
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar Training
 
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
 
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
 
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)...
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
 
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
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptx
 
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
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510
 
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
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
 
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
 

날로 먹는 Django admin 활용