Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

विदेशी कुंजी संग्रहीत करना, फॉर्म POST विधि से नहीं, बल्कि फॉर्म डेटा द्वारा मेरे पास पहले से है

int assign असाइन करने का प्रयास न करें payment.student . के लिए .असाइन करें student उदाहरण।

payment.student = student.get(pk=1) # Desired value `1` for foreign key assumed

इसके अलावा आपको कोडिंग शैली के नियमों का पालन करना चाहिए (PEP8 . के बारे में पढ़ें) ):

  • कक्षा के नाम बड़े अक्षरों से शुरू होते हैं
  • फ़ील्ड नाम बड़े अक्षरों से शुरू नहीं हुए हैं
  • चर और फ़ील्ड ऊंट केस का उपयोग नहीं करते - वर्ग के नाम करते हैं

आपका कोड इस नियम के बिना काम करेगा लेकिन पायथन डेवलपर्स के रूप में हमारे पास पठनीय कोड के लिए कुछ मानक हैं।

और Django में आपको प्राथमिक कुंजी फ़ील्ड को परिभाषित करने की आवश्यकता नहीं है - यह स्वचालित रूप से बनाया गया है और instance.pk के साथ पहुंच योग्य है .
और मुझे यकीन नहीं है कि क्या आप वाकई चाहते हैं कि आपकी विदेशी कुंजी student को इंगित करे student . का कॉलम तालिका.
और आप केवल student import आयात कर सकते हैं मॉडल अगर इसे अन्य मॉड्यूल में परिभाषित किया गया है।

तो इन सुधारों के साथ आपकी कक्षा की परिभाषा इस प्रकार होनी चाहिए:

from other_app.models import Student

class Payment(models.Model):
    student = models.ForeignKey(Student)
    date_time = models.DateField(auto_now_add=True)
    amount_due = models.DecimalField(max_digits=5, decimal_places=2)

अब किसी भी भुगतान इंस्टेंस में निहित फ़ील्ड pk . है जो प्राथमिक कुंजी के लिए खड़ा है। और स्टाइल सुधारों के साथ आपके विचार में एक पंक्ति को अंतिम रूप दें:

payment.student = Student.get(pk=1) # Desired value `1` for foreign key assumed
# payment is instance so all lowercase here
# Student on the right side is a class so started with capital



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL, द्वारा बहुत धीमा क्रम

  2. MySQL पर निष्पादित अंतिम प्रश्न कैसे दिखाएं?

  3. DBUtils जावा बीन के क्षेत्रों को भरने में विफल रहता है

  4. पीडीओ और बाइंडपरम का उपयोग करके MySQL में सरणी कैसे सम्मिलित करें?

  5. एक longblob के लिए MySQL डेटाबेस से खाली PHP आउटपुट