Nếu chúng ta thiết lập một hồ sơ như thế nào Django khuyến cáo:Django xóa đối tượng nước ngoài?
class Profile(models.Model):
user = models.ForeignKey(User, unique=True)
Sau đó, khi bạn xóa đối tượng User
từ Django admin, nó xóa too.This hồ sơ của mình là bởi vì hồ sơ có một chính nước ngoài để sử dụng và nó muốn để bảo vệ tính toàn vẹn tham chiếu. Tuy nhiên, tôi muốn chức năng này ngay cả khi con trỏ đang đi theo cách khác. Ví dụ, trên lớp Profile
của tôi, tôi có:
shipper = models.ForeignKey(Shipper, unique=True, blank=True, null=True)
carrier = models.ForeignKey(Carrier, unique=True, blank=True, null=True)
affiliat = models.ForeignKey(Affiliate, unique=True, blank=True, null=True, verbose_name='Affiliate')
Và tôi muốn nó để nếu bạn xóa Profile
nó sẽ xóa người gửi hàng/hãng/đối tượng liên kết liên quan (đừng hỏi tôi tại sao Django thực hiện " liên kết "một số từ khóa lạ). Bởi vì chủ hàng, nhà cung cấp dịch vụ và đơn vị liên kết là loại người dùng và không có ý nghĩa gì đối với họ khi không có phần còn lại của dữ liệu (không ai có thể đăng nhập dưới dạng dữ liệu).
Lý do tôi không đặt các phím trên các đối tượng khác, là bởi vì khi đó Django sẽ phải nội bộ tham gia tất cả những bảng mỗi khi tôi muốn kiểm tra loại người dùng đã ...
"đơn vị liên kết" chắc chắn không phải là "một loại từ khóa kỳ lạ nào" ở Django. Tôi có thể tạo ra một mô hình với một lĩnh vực có tên là "liên kết" và làm việc với nó chỉ tốt trong mã của tôi. –
Điều đó rất lạ. Tất cả mọi thứ hoạt động tốt nhưng nó từ chối xuất hiện trong phần quản trị. Bạn đã kiểm tra điều đó chưa? SVN checkout như một tuần trước. – mpen