سؤال

حسنًا ، لقد نشرت سؤالًا مؤخرًا بشأن خطأ عند إضافة ملف Manytomanyfield

النماذج هي تلك أدناه

class MagicType(models.Model):

     name = models.CharField(max_length=155)
     parent = models.ForeignKey('self', null=True, blank=True)

class Spell(models.Model):

    name = models.CharField(max_length=250, db_index=True)
    magic_words = models.CharField(max_length=250, db_index=True)
    magic_types = models.ManyToManyField(MagicType)

هذا هو الخطأ الذي أحصل عليه عند الترحيل معه Django-التطور:

AttributeError: 'ManyToManyField' object has no attribute '_get_m2m_column_name'

لذلك ، هل هناك طريقة لتعيين ManyTomanyfield يدويًا دون تحديدها داخل النموذجين؟ دعنا نقول مع نموذج مثل هذا

class SpellToMagicType(models.Model):
     magic_type = models.ForeignKey(MagicType)
     spell = models.ForeignKey(Spell)

لكن كيف يمكنني الاستمرار في استخدام هذا في الداخل Django's orm?

ان مساعدة سيكون محل تقدير كبير جدا. شكرًا!

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

المحلول

نفس الشيء ، أجيب على سؤالك الآخر هل لا يمكنني إضافة anmaltomanyfield؟ في الأساس ، يرجع هذا الخطأ إلى أن الكود الخاص بك في النماذج (ORM) يتغير ولكن قاعدة البيانات الخاصة بك ليست كذلك ، كما أن Django-Evolution لا يحدد العديد من المشكلات في التغييرات في قاعدة البيانات ، أقترح عليك البحث عن Django-Extensions (http://code.google.com/p/django-command-extensions/) والأمر sqldiff ، لكن انظر إلى إجابتي الأخرى

نصائح أخرى

هذا هو أكثر أو أقل بالطريقة التي كنت سأفعلها. في الواقع ، كنت في حيرة من سبب عدم عمل هذا ، وجربته بنفسي في بيئة نظيفة Django 1.1 - فهي تعمل بسباحة.

هل حاولت وضع هذا النموذج في بيئة نظيفة بنفسك ورؤية ما تحصل عليه؟

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