मेरे models.py
फ़ाइल है:Django on_delete = models.CASCADE एसक्यूएल स्तर पर कोई प्रभाव नहीं है
class User(models.Model):
email = models.CharField(max_length=100, unique=True)
password = models.CharField(max_length=100)
create_time = models.DateTimeField(auto_now_add=True)
class Session(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
token = models.CharField(max_length=100, unique=True)
जब मैं कमांड python manage.py makemigrations
और फिर कमान python manage.py sqlmigrate <app_name> <migration_name>
मैं कुछ भी है कि कहते हैं नहीं दिख रहा है "पर DELETE = CASCADE"
हालांकि, जब मैं python manage.py migrate
टाइप करता हूं तो माइग्रेशन विफलता के बिना काम करता है।
अब, अगर मैं mysql तालिका पर जाएं (SequelPro का प्रयोग करके) और एक उपयोगकर्ता जो वर्तमान में एक सत्र प्रविष्टि है के लिए एक पंक्ति को हटाने का प्रयास, मैं निम्नलिखित त्रुटि मिलती है: पुनः लोड करें "एक पंक्ति नहीं हटाई गई। तालिका सुनिश्चित करें कि इस दौरान सामग्री में बदलाव नहीं आया है। इस तालिका की प्राथमिक कुंजी के अंदर संभावित त्रुटियों के लिए कंसोल की जांच करें! "।
अब, जब मैं सत्र तालिका में जाता हूं और इस उपयोगकर्ता के सत्र हटा देता हूं और फिर उपयोगकर्ता तालिका से उपयोगकर्ता की पंक्ति को हटाने का प्रयास करता हूं, तो यह ठीक से हटा देता है। यह इंगित करता है कि ON DELETE = CASCADE
वास्तव में MySQL स्तर पर काम नहीं कर रहा है।
मैं इसे कैसे ठीक कर सकता हूं?
जो कि एक बमर है :( –