在 Django 中对现有模型进行子类化

发布于 2024-11-09 11:42:52 字数 713 浏览 0 评论 0 原文

我不确定为什么这不起作用,因为它似乎正是 django 文档 告诉我要做什么。

我希望能够对内置用户模型进行子类化,以便我可以向其中添加额外的字段。

from django.contrib.auth.models import User
class Person(User):
    my_extra_field = models.CharField(max_length=30)
    #...

这看起来很简单,按照我的理解,User 的所有方法都应该可供 Person 使用。但是,

user = Person.objects.create_user('john', '[email protected]', 'johnpassword')

在 django shell 中调用会导致错误。

这只是 shell 的一个怪癖(我正在使用 iPython),还是我做错了什么?

I'm not sure why this isn't working, since it seems to be exactly what the django documentation tells me to do.

I want to be able to subclass the built-in User model so that I can add extra fields to it.

from django.contrib.auth.models import User
class Person(User):
    my_extra_field = models.CharField(max_length=30)
    #...

This seems rather simple, and the way I understand it, all the methods of User should be available to Person. However, calling

user = Person.objects.create_user('john', '[email protected]', 'johnpassword')

in the django shell results in an error.

Is this just a quirk of the shell (I'm using iPython), or am I doing something wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

菊凝晚露 2024-11-16 11:42:52

http://scottbarnham.com/ blog/2008/08/21/extending-the-django-user-model-with-inheritance/

您需要包含 UserManager()。导入 User、UserManager 并将 UserManager() 设置为 Person 类中的变量对象。

http://scottbarnham.com/blog/2008/08/21/extending-the-django-user-model-with-inheritance/

You need to include the UserManager(). Import the User, UserManager and set the UserManager() to the variable objects in your Person class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文