إنشاء نموذج Django لقاعدة البيانات الحالية / عرض SQL؟
-
20-09-2019 - |
سؤال
لقد قمت بإدراج تعريف لإطلالة على ملف Template_Dir / SQL / SQL / $ SoftwaySablEname.sql. (إنشاء أو استبدال العرض) لذلك في كل مرة أركض syncdb
, ، يتم إنشاء طرق عرض DB.
هل يمكنني إنشاء في Models.py فئة Python التي تصل إلى طريقة العرض؟
هل من الأفضل ممارسة فقط استخدام وظائف SQL الخام في بيثون بدلا من ذلك؟
---تعديل---
مشكلة أخرى لدي هي أن العرض ليس لديه مفتاح أساسي، ولكن يبدو أن Django يفترض أنه سيكون هناك واحد لأنني أحصل على خطأ caught an exception while rendering: (1054, "Unknown column 'appName_currentleagues.id' in 'field list'")
ولكن ليس لدي مثل هذا العضو المحدد:
Class CurrentLeagues(models.Model):
League = models.ForeignKey(League)
class Meta:
managed = False
لذلك تخميني هو أن Django يرى بشكل معقول أنني لا أعرف مفتاح أساسي في فئة جيركسألز، لذلك يفترض django هناك واحد يسمى id
. وبعد هل هناك طريقة لإخبار Django أنه لا يوجد مفتاح أساسي (لأن هذا هو في الواقع عرض)، أم أنه ليس مشكلتي حتى؟
المحلول
تحدد النموذج كالمعتاد وإضافة managed = False
إلى خيارات التعريف:
class MyModel(models.Model):
...
class Meta:
managed = False
نصائح أخرى
حاول استخدام Python Proview.py InspectDB أو Python Manage.py InspectDB> Models.py