मैं एक सामान्य विदेशी कुंजी के साथ संबंध का उपयोग कर एक मॉडल का चयन करने की कोशिश कर रहा हूं, लेकिन यह उम्मीद के अनुसार काम नहीं कर रहा है।Django जेनेरिक विदेशी कुंजी और select_related
मुझे लगता है कि यह बेहतर सचित्र और कोड
class ModelA(models.Model):
created = models.DateTimeField(auto_now_add=True)
class ModelB(models.Model):
instanceA = models.ForeignKey(ModelA)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey()
class ModelC(models.Model):
number = models.PositiveIntegerField()
bInstances = generic.GenericRelation(ModelB)
# Creating an instance of A and C
aInstance=ModelA.objects.create()
cInstance=ModelC.objects.create(number=3)
# Adding instance of C to the B_set of instance A
aInstance.modelb_set.add(content_object=cInstance)
# Select all ModelA instances that have C as content object? Does not work
whatIWant = ModelA.objects.filter(modelb__content_object=modelCInstance)
# Pseudo-solution, requires calling whatIWant.modelA
whatIWant = cInstance.bInstances.select_related("modelA")
बस स्पष्ट होना के साथ समझा जा सकता है, मैं चाहते हैं कि इस लाइन में काम किया: ModelA.objects.filter(modelb__content_object=modelCInstance)
, जाहिरा तौर पर django फिल्टर रिश्तों पर content_object का उपयोग कर समर्थन नहीं करता।
अग्रिम धन्यवाद!
आप क्या उम्मीद करते हैं? यदि कोई नहीं है तो हम किसी प्रश्न का उत्तर नहीं दे सकते। –
मैंने इसे स्पष्ट करने के लिए पोस्ट संपादित किया है, क्षमा करें – Clash