كيفية الانضمام إلى النماذج غير العلائقية في Django 1.3 في 2 الحقول

StackOverflow https://stackoverflow.com//questions/9607716

  •  09-12-2019
  •  | 
  •  

سؤال

لدي نموذجين موجودين أحتاج إلى الانضمام إلى أنه غير صحيح (لا مفاتيح أجنبية).وقد كتبت هذه المطورون الآخرون من قبل مطورين آخرين.

إليك وصف سريع لهم:

عملية نموذج

  • اسم الملف الحقل
  • مسار الحقل
  • حقل شيء شيء
  • شريط الحقل

    خدمة النموذج

    • اسم الملف الحقل
    • مسار الحقل
    • اسم الحقل
    • field foo

      أحتاج إلى الانضمام إلى جميع مثيلات هاتين النموذجين على اسم الملف والأعمدة المسبقة.لدي مرشحات موجودة، يجب أن أتقدم بطلبها إلى كل منها قبل حدوث هذا الانضمام.

      مثال:

      a= process.objects.filter (somethingelse= 231)

      b= service.objects.filter (foo= 'abc')

      النتيجة= a.filter (filename= b.filename، path= b.path)

هل كانت مفيدة؟

المحلول

هذا تمتص، ولكن أفضل رهان لك هو تكرار جميع نماذج من نوع واحد، وإصدار استفسارات للحصول على نماذج التحضل الخاصة بك للنوع الآخر.

البديل الآخر هو تشغيل استعلام SQL RAW لتنفيذ هذه الأعمال، واسترداد معرفات كل كائن نموذج، ثم استرجع كل زوج انضم بناء على ذلك.أكثر كفاءة في وقت التشغيل، ولكن سيحتاج إلى الحفاظ عليها يدويا إذا تطور المخطط الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top