حدد علاقة Manytomany في تطبيق آخر في Django
سؤال
لديّ مستخدمي التطبيقات والمشاريع وأرغب في تحديد تطبيق آخر يسمى أدوار لتوسيع Django-Auth على أساس لكل مشروع.
لقد حددت ProjectMembership في تطبيق الأدوار كنموذج علاقات مخصص في ManyTomany. ولكن كيف يمكنني تحديد حقل M2M في نموذج المستخدم أو المشروع مع through
إعلان؟
لذا ، هل يمكن أن نحدد حقل النموذج من تطبيق آخر؟
المحلول
لا أعتقد أن هذا ممكن ، وحتى إذا كان ذلك ممكنًا ، فهذا في رأيي حلًا سيئًا للغاية.
أعتقد أن أفضل خيارك هو إنشاء نموذج ProjectMembership مع اثنين من FK ، واحد للمستخدم والآخر للمشروع. ثم لديك ملف كتيب علاقة M2M ، ولا يمكنك استخدام جميع ميزات Django اللطيفة للعمل مع علاقات M2M.
ومع ذلك ، إذا كنت تريد هذه الميزات (غير مطلوبة) ، فيجب عليك تعديل المستخدم أو نموذج المشروع.
نصائح أخرى
نعم يمكنك ذلك ، سيقوم Django تلقائيًا بإنشاء العلاقة العكسية لك. يستخدم related_name
لإعطائه اسم!
تعديل (تصحيح النقود) User
النموذج ليس فكرة جيدة. إذا كنت تريد تمديدها ، فقم بذلك إما عبر:
- ميراث
- كائن ملف تعريف (وهي الطريقة التي أوصت بها Django).