2010-11-24 23 views
8

INSTALLED_APP'de kullanılan bir modeli, söz konusu uygulamayı değiştirmeden yeniden tanımlamak mümkün müdür? Örneğin, django-basic-blog'un bir alan eklemek istediğim bir Post modeli vardır. Django-basic-blogu doğrudan düzenleyebilirim ancak kod taşınabilirliği için bunun üzerine inşa etmek istiyorum. Post modele ait mevcut tüm referansları korumak istediğimden alt sınıf istemiyorum. Şimdiden teşekkürler!Django'da yüklü uygulamalarda tanımlanan modelleri nasıl geçersiz kılarsınız?

cevap

11
  1. Orijinal alanların alt sınıflarını oluşturuyorsanız, orijinal tablo yine de saklanır, böylece başvurular geçerli kalır. Eğer maymun yama istiyorsanız

  2. çoğunlukla tavsiye kirli yöntem değildir varolan sınıf, sen değiştirmek istediğiniz birinden sonra bir uygulamada yüklenecek bazı models.py dosyada contribute_to_class kullanabilirsiniz:

models.py:

from django.db.models import CharField 
from blog.models import Post 
CharField(max_length="100").contribute_to_class(Post, 'new_field') 

böyle yaparsan, her zaman değişiklikler kod diğer parçaları ile ve kod bakımı zordur olacağını uyuşmayabilmektedir riskini çıplak var!

+0

Harika cevap! 1 için bir örnek verdiyseniz iyi olurum;) – Jannis

İlgili konular