저는 장고에 대해 아주 새롭고, 지금까지 (django.contrib.auth.models)의 기본 사용자 모델에 추가 모델을 첨부하는 아주 기본적인 설정을했습니다. 내 accounts.models.py에는 다음 항목이 있습니다.사용자 또는 UserExtenstion에 대한 Django 소유권 외래 키
class UserExtension(models.Model):
user = models.OneToOneField(User, primary_key=True)
# more code
또한 소유자를 지정해야하는 다른 모델도 있습니다. 내 질문은 :
class Owned(models.Model):
# code
owner = models.ForeignKey(User)
# more code
나 :
class Owned(models.Model)
# code
owner = models.ForeignKey(UserExtension)
# more code
정말 감사 할 것 소유자를 의미하는 더 나은 (더 장고 틱, 더 읽기, 더 효율적으로, 더 유연한) 방법은 어느 당신이 그 접근법의 장단점을 언급한다면.
Django 1.5에 대한 메모를 가져 주셔서 감사합니다. 어떻게 든 놓쳐 버렸을 것입니다.하지만 RC 일지는 모르겠지만 아마 그걸로 옮길 것입니다. 부수적으로, 내 경우 및 소유 객체에서 UserExtension이있는 사용자가 소유해야하며, 예를 들어 수퍼 유저 (순수 관리이며 UserExtension이없는 사용자)는 아닙니다. DB와 프로그램을 통해 이러한 경우가 발생하지 않도록 과도하게 고려하고 있습니까? – dmg
나를 위해, 프로그래밍 방식으로 보안을 설정하면 대부분의 경우 충분합니다. 일반적으로 - 자신 만의 사용자 모델을 만드는 경우에도 - 좋은 이유가없는 한 다른 유형의 사용자 모델 (예 : 관리자 및 일반 사용자를위한 별도의 모델 필요)을 세분화하지는 않습니다. – Teisman