Files
upstream-mirror e7da97194a
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s
snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
2026-09-17 23:28:13 +05:00

123 lines
9.5 KiB
Plaintext

---
title: الحقول
description: فهم دور الحقول وكيفية إدارتها.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## حول الحقول
الحقول مثل الأعمدة في جدول البيانات. تُخزّن أنواعًا مختلفة من البيانات مثل النصوص أو الأرقام أو التواريخ. يمكن أن تكون الحقول قياسية (مدمجة) أو مخصصة (التي تقوم بإنشائها).
### الحقول القياسية
الحقول القياسية تأتي مدمجة في Twenty للتعامل مع احتياجات الأعمال العامة.
على سبيل المثال، `الاسم الأول` و`الاسم الأخير` هما حقول قياسية في كائن `الأشخاص`. تخزن البيانات النصية للأسماء الفردية.
لا يمكنك حذف الحقول القياسية، ولكن يمكنك إلغاء تنشيطها إذا لم تكن بحاجة إليها.
يمكنك أيضًا تخصيص خيارات الحقول القياسية من نوع `SELECT`، على سبيل المثال خيارات `Stage` في الفرص.
<img src="/images/user-guide/fields/standard-fields.png" style={{width:'100%'}} />
### الحقول المخصصة
يمكن إضافة الحقول المخصصة إلى أي كائن. يمكنك تخزين النصوص أو الأرقام أو التواريخ أو الخيارات المنسدلة والمزيد. استخدم الحقول المخصصة لتتبع المعلومات الخاصة بأعمالك.
على سبيل المثال، الحقل المخصص لـ SpaceX يمكن أن يكون `حالة الصاروخ النشطة`، مما يشير إلى ما إذا كان الصاروخ يعمل.
<img src="/images/user-guide/fields/custom-fields.png" style={{width:'100%'}} />
## أنواع الحقول
يدعم Twenty أنواعًا متعددة من الحقول:
| النوع | الوصف | مثال |
| ----------------- | ----------------------------------------------------------------- | --------------------------- |
| العنوان | عنوان مُهيكل يتضمن الشارع، المدينة، الولاية، البلد، الرمز البريدي | عنوان المكتب |
| مصفوفة | قائمة بقيم نصية | الوسوم |
| قيمة منطقية | خانة اختيار صح/خطأ | نشط |
| العملة | قيمة نقدية مع رمز العملة | مبلغ الصفقة (USD) |
| تاريخ | قيم التاريخ | تاريخ الإغلاق |
| التاريخ والوقت | تاريخ مع الوقت | وقت الاجتماع |
| النطاق | نطاق موقع الويب (يُستخدم للشركات) | acme.com |
| البريد الإلكتروني | عناوين البريد الإلكتروني (مع الأساسي + الإضافي) | بريد جهة الاتصال الإلكتروني |
| JSON | بيانات JSON مُهيكلة | بيانات وصفية مخصصة |
| روابط | عناوين URL مع تسميات (أساسي + ثانوي) | موقع الويب، لينكدإن |
| نص طويل | نص متعدد الأسطر | الوصف، الملاحظات |
| التحديد المتعدد | خيارات متعددة من قائمة محددة مسبقًا | وسوم، فئات |
| رقم | قيم رقمية (صحيحة أو عشرية) | الكمية، الدرجة |
| هاتف | أرقام هواتف مع رمز البلد | هاتف العمل |
| تقييم | تقييم بالنجوم (1-5) | الأولوية، الدرجة |
| علاقة | روابط إلى السجلات في كائنات أخرى | الشركة → الأشخاص |
| اختيار | خيار واحد من قائمة محددة مسبقًا | المرحلة، الحالة |
| نص | سطر واحد من النص | الاسم، العنوان |
## إنشاء حقل مخصص
لإضافة حقل مخصص لأي كائن، اتبع هذه الخطوات:
1. اذهب إلى `الإعدادات` في الشريط الجانبي الأيسر.
2. اذهب إلى `نموذج البيانات`، ثم حدد الكائن الذي ترغب في تخصيصه.
3. تقدم من خلال النقر على `+ حقل جديد`.
4. اختر اسم الحقل والنوع الذي يناسب احتياجاتك. فكر في إضافة وصف للحقل لفهم أفضل.
أصبح الحقل الجديد الذي أنشأته الآن متاحًا ضمن حقول التطبيق. لعرضه في عرض محدد، انقر على قائمة الخيارات، ثم اختر `الحقول`.
<VimeoEmbed videoId="927628219" title="عرض توضيحي بالفيديو" />
**طريقة سريعة:** اضغط على زر **+** في أعلى يمين أي جدول كائن، ثم اختر `تخصيص الحقول`. سيأخذك هذا مباشرة إلى إعدادات نموذج البيانات.
<img src="/images/user-guide/fields/quick-new-field.png" style={{width:'100%'}} />
## إلغاء تنشيط حقل
يمكنك إلغاء تنشيط حقل لإخفائه من التطبيق دون فقدان بياناتك. اعتبره كإخفاء للحقل بدلاً من حذفه.
إليك كيفية القيام بذلك:
1. ابحث عن الحقل الذي تريد إلغاء تنشيطه في إعدادات الكائن الخاصة بك.
2. انقر على الثلاث نقاط `⋮` بجانب الحقل لفتح القائمة.
3. اختر `إلغاء التنشيط` من القائمة المنسدلة.
<img src="/images/user-guide/fields/deactivate-field.png" style={{width:'100%'}} />
ماذا يحدث عند إلغاء تنشيط حقل؟
1. **في التطبيق:** يختفي الحقل ولا يمكنك إضافة قيم جديدة إليه.
2. **العلاقات الموجودة:** إذا كان حقل علاقة، ستبقى الروابط القائمة ولكن لا يمكنك إنشاء روابط جديدة.
3. **الوصول عبر API:** لا يزال بإمكانك الوصول إلى الحقل وبياناته عبر API.
يمكنك إعادة تنشيط الحقول القياسية والمخصصة أو لديك خيار حذفها نهائيًا.
## جعل الحقول فريدة
اجعل الحقل فريدًا لضمان عدم إمكانية أن تحتوي السجلات المميزة على نفس القيمة. على سبيل المثال، عناوين البريد الإلكتروني فريدة لكل شخص.
إذا ظهرت لك رسالة خطأ عند تعيين خاصية التفرد، فتحقق من وجود قيم مكررة في بياناتك (بما في ذلك السجلات المحذوفة).
## الفهارس (متقدّم)
تُدار فهارس قاعدة البيانات تلقائيًا — ونادرًا ما تكون إضافة فهارسك الخاصة ضرورية، ومن السهل الوقوع في الأخطاء عند القيام بذلك. مع تفعيل الوضع المتقدّم، يكون لكل كائن قسم **Indexes** تحت `Settings → Data Model → <object>` للحالات التي تعلم فيها أنك بحاجة إلى فهرس.
## أفضل ممارسات تكوين الحقول
### اتفاقيات التسمية والقيود
* **يجب أن تكون الأسماء المفردة والجمع مختلفة**: يحتاج GraphQL API الخاص بنا إلى أسماء مميزة لعمليات التعديل
* **أسماء الحقول المحمية**: بعض الأسماء محجوزة للاستخدام الخاص بالنظام (مثل `Type`، `Application`)
### حقول العملة والهاتف
* **العملة الافتراضية**: يمكن تهيئتها عبر نموذج البيانات
* **أكواد الدول الافتراضية**: يمكن تهيئتها لحقول الهاتف عبر نموذج البيانات
### حقول الاختيار
* **يمكن اختيار خيار افتراضي** لكل حقل اختيار
### حقول نص السجلات
* **كل كائن لديه حقل عرض رئيسي واحد**: يظهر هذا الحقل في العمود الأول ويمثل السجل عند الربط بأشياء أخرى. يجب أن يكون حقل نصي. على سبيل المثال، يستخدم الأشخاص `الاسم` كحقل رئيسي، لذلك عندما تربط شخصًا بشركة، سترى اسمهم في عرض الشركة.