Tôi đang tự động lưu trữ thông tin trong cơ sở dữ liệu tùy thuộc vào yêu cầu:Cách tìm hiểu xem cột của mô hình có phải là khóa ngoại không?
// table, id and column are provided by the request
table_obj = getattr(models, table)
record = table_obj.objects.get(pk=id)
setattr(record, column, request.POST['value'])
Vấn đề là request.POST [ 'giá trị'] đôi khi chứa khóa chính kỷ lục của nước ngoài (tức là một số nguyên) trong khi Django hy vọng giá trị của cột là đối tượng thuộc loại ForeignModel:
Không thể chỉ định "u'122 '": "ModelA.b" phải là phiên bản "ModelB".
Bây giờ, có cách nào thanh lịch để kiểm tra động xem b là cột chứa khóa ngoại và mô hình nào các khóa này được liên kết với? (Vì vậy mà tôi có thể tải các hồ sơ nước ngoài bởi đó là khóa chính và gán nó cho ModelA?) Hoặc không Django cung cấp thông tin như thế này để lập trình vì vậy tôi thực sự có để có được bàn tay của tôi bẩn và sử dụng isinstance() trên nước ngoài cột khóa?
Đầu vào 'mô hình' sẽ không được ghi đè bởi phép gán' field_object, model_direct, m2m = ... '? – alvas
Tôi đoán, nhưng nó không bao giờ được sử dụng một lần nữa vì vậy không phải là một việc lớn. –