साथ मैं, कुछ Django मॉडल का कहना है किका उपयोग करते हुए `issubclass()` Django मॉडल
class Foo(models.Model):
class Meta:
abstract = True
class Bar(Foo)
pass
मैं क्रम में उनके साथ एक कार्य को करने में, फू से इनहेरिट सभी मॉडलों को खोजने के लिए सक्षम होने के लिए करना चाहते हैं। यह आसान होना चाहिए
from django.db import models
from myapp.models import Foo
for model in models.get_models():
if issubclass(model, Foo):
do_something()
आह की तरह, यह शायद Django metaclass कि मॉडल initializes के भीतर काम कर रहे एक परिणाम के रूप में काम नहीं करता, issubclass(Bar, Foo)
रिपोर्ट False
के बाद से,।
क्या यह जांचने का कोई तरीका है कि एक Django मॉडल एक अमूर्त Django मॉडल का वंशज है या नहीं?
कृपया, समाधान के रूप में बतख टाइपिंग का सुझाव न दें। इस मामले में, मैं वास्तव में जानना चाहता हूं कि सबक्लास संबंध मौजूद है या नहीं।
खुद को एक ही प्रश्न पूछना ... कई परीक्षणों और कोड आत्मनिरीक्षण के बाद, मुझे लगता है कि ऐसा संभव नहीं लगता है, क्योंकि अमूर्त मॉडल कॉलबेल हैं, और बेटे ऑब्जेक्ट्स में कोई विशेषता या विधियां नहीं हैं जो इसे फिट करती हैं की जरूरत है। – Oleiade
अजीब लगता है ... मैंने अभी वर्चुअलनव में एक नया django ऐप बनाया है, और आपका कोड काम कर रहा है, मेरा 'do_something()' बस एक 'प्रिंट मॉडल' है और यह काम करता है। नतीजा:। क्या आप सुनिश्चित हैं कि आपकी समस्या अमूर्त से आती है? एफवाईआई मैं django 1.3.1 –
का उपयोग कर रहा हूं Django 1.3.1 – Brandon