Tôi đang tìm thông tin xung đột về việc có nên sử dụng OneToOneField (Người dùng) hoặc ForeignKey (Người dùng, duy nhất = True) khi tạo mô hình UserProfile bằng cách mở rộng mô hình Người dùng Django hay không.Django: Khi mở rộng Người dùng, tốt hơn để sử dụng OneToOneField (Người dùng) hoặc ForeignKey (Người dùng, duy nhất = True)?
Là nó tốt hơn để sử dụng này ?:
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
hay này ?:
class UserProfile(models.Model):
user = models.OneToOneField(User)
Các Django Doc định OneToOneField, trong khi Django Book example sử dụng ForeignKey.
James Bennett cũng có hai Blog viết rằng việc cung cấp ví dụ mâu thuẫn cũng như:
Trong bài cũ, Bennett đưa ra một số lý do tại sao ông chuyển sang sử dụng ForeignKey thay của OneToOneField, nhưng tôi không hoàn toàn hiểu được nó, đặc biệt là khi tôi thấy các bài viết khác đề xuất ngược lại.
Tôi tò mò muốn biết tùy chọn của bạn và lý do. Hay nó thậm chí còn quan trọng?
Tôi không thấy gì trong bài viết đầu tiên của Bennett về hồ sơ người dùng. –
@Ignacio - Rất tiếc, tôi đã thêm một liên kết đến bài viết sai. Nó nên có được bài viết của mình trên "Mở rộng mô hình người dùng". Tôi đã sửa liên kết. Cảm ơn bạn đã chỉ ra điều này. –
Đối với tôi, http://stackoverflow.com/questions/5870537/whats-the-difference-between-django-onetoonefield-and-foreignkey rõ ràng hơn để hiểu –