tgoop.com/djangolearn_ir/653
Last Update:
#django
#python
Django Lifecycle
این پکیج چیه کاربردش چیه؟
تفاوت اصلی میان Django Lifecycle و سیگنالها (Signals) در Django این است که Django Lifecycle یک رویکرد ساختارمندتر و اصولیتر را برای مدیریت چرخه عمر اجزا فراهم میکند. با استفاده از Django Lifecycle، شما میتوانید کدهای مربوط به هر مرحله از چرخه عمر را به صورت مستقیم در کلاسهای مدل یا دیگر اجزا تعریف کنید و این اجزا را به یک مدل متصل کنید. این اجازه را به شما میدهد که کدهای مربوط به هر مرحله را در یک مکان مرتبط و خوانا نگه دارید و از تفکیک بخشها بهرهمند شوید.
مثالی از این بخش:
به عنوان مثال، فرض کنید که میخواهید هر زمان که یک مدل از نوع Post ایجاد یا بهروزرسانی میشود، یک عملیات خاصی انجام دهید. با استفاده از Django Lifecycle، میتوانید این عملیات را به صورت مستقیم در مدل Post تعریف کنید، به عنوان مثال:
from django.db import models
from django_lifecycle import LifecycleModel, hook
class Post(LifecycleModel):
title = models.CharField(max_length=100)
content = models.TextField()
@hook(BEFORE_UPDATE, when="content", has_changed=True)
def update_history(cls, old_instance, instance, field_name):
History.objects.create(
post=instance,
old_content=old_instance.content,
new_content=instance.content
)
post = Post.objects.create(title="Title", content="Content")
post.content = "Updated Content"
post.save()
در این مثال، یک مدل به نام Post تعریف شده است که از کلاس LifecycleModel ارثبری کرده است. با استفاده از دکوراتور hook، یک عملیات update_history برای مدل تعریف شده است. این عملیات هر زمان که محتوای یک نمونه از مدل تغییر میکند، یک رکورد جدید به جدول History اضافه میکند که تاریخچه تغییرات محتوا را ثبت میکند.
اطلاعات بیشتر راجبش:
https://github.com/rsinger86/django-lifecycle
@SEYED_BAX
BY جنگولرن
Share with your friend now:
tgoop.com/djangolearn_ir/653