Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

lưu trữ khóa ngoại, không phải từ phương thức POST của biểu mẫu mà bằng dữ liệu biểu mẫu mà tôi đã có

Đừng cố gán int cho payment.student .Assign student ví dụ.

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

Hơn nữa, bạn nên tuân theo các quy tắc về kiểu mã hóa (đọc về PEP8 ):

  • tên lớp bắt đầu bằng chữ in hoa
  • tên trường không được bắt đầu bằng chữ in hoa
  • các biến và trường không sử dụng kiểu chữ hoa camel - tên lớp thì có

Mã của bạn sẽ hoạt động mà không có quy tắc này nhưng với tư cách là Nhà phát triển Python, chúng tôi có một số tiêu chuẩn cho mã có thể đọc được.

Và trong Django, bạn không phải xác định trường khóa chính - nó được tạo tự động và có thể truy cập bằng instance.pk .
Và tôi không chắc liệu bạn có thực sự muốn khóa ngoại của mình trỏ đến student hay không cột student bảng.
Và bạn chỉ có thể nhập student nếu nó được xác định trong mô-đun khác.

Vì vậy, với những chỉnh sửa này, định nghĩa lớp của bạn sẽ giống như sau:

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)

Giờ đây, bất kỳ phiên bản Thanh toán nào đều có trường ngầm định pk là viết tắt của khóa chính Và phân tích một dòng trong chế độ xem của bạn với các chỉnh sửa kiểu dáng:

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. JDBC:Chèn giá trị Ngày vào MySQL

  2. Sao chép các đặc quyền của người dùng giữa các cơ sở dữ liệu trên cùng một máy chủ

  3. Điều gì sẽ xảy ra nếu tôi xóa ibdata1 trong mysql (LINUX)

  4. Làm cách nào để tạo một truy vấn cơ sở dữ liệu chéo trong PHP?

  5. Làm thế nào để sử dụng Xác thực HTTP với PHP và sau đó chạy dữ liệu đã nhập dựa trên cơ sở dữ liệu?