2011-11-02 17 views
5

Yeni ContentTypes hangi noktada oluşturulur ve bunu kendim nasıl tetikleyebilirim?Django: Yeni modeller için ContentTypes'ın oluşturulmasını nasıl tetiklersiniz?

Bir grup güney göçmenim var, yeni modeller oluşturuyorum. Her şey bittikten sonra, bu yeni nesneler için izinleri zaten ilgili izinlere sahip olan herhangi bir gruba atayan bir son veri geçişi vardır. (Bu nedenle 'İlgili izinler', uygulama içinde anlamlandırılmak üzere tarafımdan seçilir)

Ancak, yeni oluşturulan modeller için ContentTypes, bu veri akışını çalıştırdığımda henüz mevcut değildir. İlk önce tüm diğer göçleri çalıştırdığımda ve daha sonra ekstra veri göçünü çalıştırdıklarında. Yani komutu iki kez çalıştır. Ancak bu el ile yama yapmak benim durumumda uygun bir senaryo değildir.

Bu nedenle, tüm yeni modellere yönelik ContentTypes'ın oluşturulmasını, veri geçişimi yürütmeden önce el ile tetiklemek istiyorum. Bu nasıl yapılır?

+0

ContentTypes'inizi nasıl ediniyorsunuz? [get_for_model] (https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#django.contrib.contenttypes.models.ContentTypeManager.get_for_model) normalde çalışır. Ort ['contenttypes.contenttype'] 'da ct için – Tobu

+0

. objects.filter (app_label =' client ') Ama sanırım basit bir şekilde açıklayabiliyordum; iyi bir öneri –

cevap

7

ContentType örneklerini talep üzerine oluşturan ContentType.objects.get_for_model() kullanmalısınız (bazı önbellek de ekler).

+0

Bu, genel durumu yazamayacağının dezavantajına sahiptir ("uygulama için tüm içerik türleri" ve "), ancak bu sorunu düzeltmeme yardımcı olur. Teşekkürler –

İlgili konular