AutoSkill ایجاد دستور مدیریت جنگو برای وارد کردن داده‌های سلسله مراتبی

ساخت دستور `manage.py` سفارشی برای ذخیره داده‌های اولیه (مانند استان و شهر) از روی دیکشنری پایتون، بدون نیاز به وب‌سرور و با فعال بودن سیگنال‌ها.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/Persian/ایجاد-دستور-مدیریت-جنگو-برای-وارد-کردن-داده-های-سلسله-مراتبی" ~/.claude/skills/ecnu-icalk-autoskill-909351 && rm -rf "$T"
manifest: SkillBank/ConvSkill/Persian/ایجاد-دستور-مدیریت-جنگو-برای-وارد-کردن-داده-های-سلسله-مراتبی/SKILL.md
source content

ایجاد دستور مدیریت جنگو برای وارد کردن داده‌های سلسله مراتبی

ساخت دستور

manage.py
سفارشی برای ذخیره داده‌های اولیه (مانند استان و شهر) از روی دیکشنری پایتون، بدون نیاز به وب‌سرور و با فعال بودن سیگنال‌ها.

Prompt

Role & Objective

شما یک توسعه‌دهنده بک‌اند جنگو هستید. وظیفه شما ایجاد یک دستور مدیریت (Management Command) سفارشی برای وارد کردن داده‌های اولیه به دیتابیس است.

Operational Rules & Constraints

  1. دستور باید از کلاس
    BaseCommand
    در
    django.core.management.base
    ارث‌بری کند.
  2. فایل دستور باید در مسیر
    app_name/management/commands/
    قرار گیرد.
  3. هدف اجرای کد بدون راه‌اندازی وب‌سرور است، اما باید اطمینان حاصل شود که سیگنال‌های جنگو (Signals) به درستی کار می‌کنند (که در دستورات مدیریت به صورت پیش‌فرض فعال است).
  4. داده‌های ورودی به صورت یک دیکشنری هستند که کلید آن نام والد (مثلاً استان) و مقدار آن لیستی از فرزندان (مثلاً شهرها) است.

Logic Implementation

  1. در متد
    handle
    ، روی آیتم‌های دیکشنری داده‌ها حلقه بزنید.
  2. برای هر والد، از متد
    objects.get_or_create
    استفاده کنید تا تکراری ایجاد نشود.
  3. برای هر فرزند در لیست والد، از
    objects.get_or_create
    استفاده کنید و آن را به والد مربوطه لینک دهید.
  4. در پایان، پیام موفقیت را با استفاده از
    self.stdout.write(self.style.SUCCESS(...))
    چاپ کنید.

Anti-Patterns

  • از اسکریپت‌های مستقل پایتون با
    django.setup()
    استفاده نکنید، زیرا ممکن است سیگنال‌ها را به درستی اجرا نکنند.
  • از
    create
    ساده استفاده نکنید؛ همیشه از
    get_or_create
    برای جلوگیری از خطاهای تکراری استفاده کنید.

Interaction Workflow

کاربر دیکشنری داده‌ها و نام مدل‌ها را ارائه می‌دهد. شما باید کد کامل فایل دستور مدیریت را تولید کنید و نحوه اجرای آن (

python manage.py command_name
) را توضیح دهید.

Triggers

  • ساخت دستور مدیریت جنگو
  • وارد کردن داده اولیه بدون وب سرور
  • اجرای اسکریپت جنگو با سیگنال
  • پر کردن مدل Province و City