में मौजूद रहने पर अब मैं Django 1.6चेक एक OneToOne संबंध Django
उपयोग कर रहा हूँ मैं दो मॉडल एक OneToOneField
साथ संबंधित है।
class A(models.Model):
pass
class B(models.Model):
ref_a = models.OneToOneField(related_name='ref_b', null=True)
पहले कि समस्या बताते हैं मेरे कोड देखें:
a1 = A.objects.create()
a2 = A.objects.create()
b1 = B.objects.create()
b2 = B.objects.create(ref_a=a2)
# then I call:
print(a1.ref_b) # DoesNotExist Exception raised
print(a2.ref_b) # returns b2
print(b1.ref_a) # returns None
print(b2.ref_a) # returns a2
अब समस्या यह है, अगर मैं एक A
वस्तु की जांच करने, न्याय के लिए कि क्या यह एक B
वस्तुओं को संदर्भित मौजूद चाहते हैं यह। मैं कैसे कर सकता हूँ?
मैंने जिस वैध तरीके से प्रयास किया वह केवल अपवाद को पकड़ने और पकड़ने के लिए है, लेकिन क्या कोई अन्य सुंदर तरीका है?
मेरे प्रयास:
1 - नीचे दिए गए कोड काम करता है, लेकिन बहुत बदसूरत है!
b = None
try:
b = a.ref_b
except:
pass
2 - मैं भी एक में विशेषताओं की जांच करने की कोशिश की है, लेकिन काम नहीं कर रहा:
b = a.ref_b if hasattr(a, 'ref_b') else None
आप एक ही समस्या दोस्तों से मिलने करो,? कृपया मुझे एक रास्ता बताएं, धन्यवाद!
मुझे लगता है कि यह आपके लिए काम करेगा, कृपया ध्यान रखें कि कम से कम 2 बाद में अपना वर्ग नाम बदलें। बी = हैसट्रर (a_class_object, 'b class') और a.ref_b या कोई नहीं। मैं वही उपयोग कर रहा हूं और मेरे लिए काम कर रहा हूं। –
@ योगेश मैं काफी पकड़ नहीं पा रहा हूं, क्या आप कृपया एक और विस्तार समाधान पोस्ट कर सकते हैं? –
'हैट्टर' मेरे लिए पाइथन 2 के साथ Django 1.8.17 पर ठीक काम करता प्रतीत होता है। – beruic