Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:如何在admin中定义与表的一对一关系?_Django - Fatal编程技术网

Django:如何在admin中定义与表的一对一关系?

Django:如何在admin中定义与表的一对一关系?,django,Django,朋友们,你好 我试图在django admin中定义与用户的一对一关系。下面是我在应用程序中models.py中的代码: from django.db import models class Tutor(models.Model): account = models.OneToOneField([A User from Admin]) # what should I code here? first_name = models.CharField(max_length=200)

朋友们,你好

我试图在django admin中定义与用户的一对一关系。下面是我在应用程序中models.py中的代码:

from django.db import models

class Tutor(models.Model):
    account = models.OneToOneField([A User from Admin]) # what should I code here?
    first_name = models.CharField(max_length=200)
    last_name = models.CharField(max_length=200)
我应该写什么来代替[管理员的用户]

谢谢。

用户模型属于django.contrib.auth

编辑

如注释中所述,最好通过AUTH_USER_model设置引用模型。这样,如果更改用户模型,代码不会中断

现在,如果您想通过用户信息访问它,那么您可以。比如说,您需要访问用户的名字。然后,您只需在此处运行关系查询:

user_info = User.objects.get(username='someone')
first_name = user_info.tutor.first_name

附加信息:如果需要为用户添加名字和姓氏,则无需添加其他表。只需扩展UserCreationForm并为用户模型添加其他字段。

这实际上取决于您如何设置用户模型。您只是在使用Django默认值吗?是否应该使用settings.AUTH\u USER\u模型而不是USER?通过@getup8,是的,我们应该使用它。有时程序员知道这个项目不会使用任何自定义用户模型。这就是为什么我们直接使用它。但正如你所说,这是最好的做法。同样的评论。。您是否应该使用settings.AUTH\u USER\u模型而不是USER?通过
from django.conf import settings
from django.db import models

class Tutor(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    first_name = models.CharField(max_length=200)
    last_name = models.CharField(max_length=200)
from django.db import models
from django.contrib.auth.models import User
#You need to add the aforementioned line if you want to load User model here

class Tutor(models.Model):
    account = models.OneToOneField(User, on_delete=models.CASCADE)
    first_name = models.CharField(max_length=200)
    last_name = models.CharField(max_length=200)
user_info = User.objects.get(username='someone')
first_name = user_info.tutor.first_name