小编Sas*_*che的帖子

django 中的related_name 和related_query_name 是什么?

我对 django 框架中关于 django 中的related_name 和related_query_name的代码有问题。请django高手解释django中的related_name,代码如下:

相关名称='+'

django django-models

5
推荐指数
1
解决办法
2019
查看次数

当覆盖 get_queryset 时,DRF 抛出 django.core.exceptions.ImproperlyConfigured

Django Rest 框架抛出:

\n\n
\n

django.core.exceptions.ImproperlyConfigured:无法使用视图名称“customuser-detail”解析超链接关系的 URL。您可能未能在 API 中包含相关模型,或者错误配置了lookup_field该字段的属性。

\n
\n\n

当我尝试覆盖 get_queryset时时。\n我的用户序列化器:

\n\n
\nclass UserSerializer(serializers.HyperlinkedModelSerializer):\n    """\n    Represent User Serializer class.\n    """\n    teacher_account = TeacherSerializer(required=False)\n    student_account = StudentSerializer(required=False)\n\n    account_type = serializers.IntegerField(required=True)\n\n    class Meta:\n        model = CustomUser\n        fields = [\'url\', \'username\', "password", \'email\', \'first_name\', \'last_name\', "account_type", \'teacher_account\', \'student_account\']\n\n        email_validator = UniqueValidator(queryset=CustomUser.objects.all(), message="A user with that email already exists.")\n\n        extra_kwargs = {\n            "password": {"write_only": True},\n            "email": {"required": True, "validators": [email_validator]}\n        }\n\n    @staticmethod\n    def setup_eager_loading(queryset):\n        queryset = queryset.select_related(\'teacher_account\', \'student_account\')\n …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

5
推荐指数
1
解决办法
1179
查看次数

Django自定义UserManager中的self.model()

因此,我是Django的新手。尽管我的代码在遵循Django文档“在Django中自定义身份验证”后可以工作,但我不知道示例中的self.model(...)实际如何工作,它的来源以及如何与'自'。

这是在文档底部找到的示例。

from django.db import models

from django.contrib.auth.models import (
    BaseUserManager, AbstractBaseUser
)

class MyUserManager(BaseUserManager):
    def create_user(self, email, date_of_birth, password=None):
        """
        Creates and saves a User with the given email, date of
        birth and password.
        """
        if not email:
            raise ValueError('Users must have an email address')

   ->   user = self.model(
            email=self.normalize_email(email),
            date_of_birth=date_of_birth,
        )

        user.set_password(password)
        user.save(using=self._db)
        return user
...
Run Code Online (Sandbox Code Playgroud)

python authentication django django-authentication django-users

4
推荐指数
1
解决办法
1301
查看次数

Django Rest Framework - OneToOne 反向关系

我有一个自定义用户模型和用户配置文件模型。

class User(AbstractUser):
    """Custom User authentication class to use email as username"""
    username = None
    email = models.EmailField(verbose_name='email', max_length=255, unique=True,
                              error_messages={
                                  'unique': _(
                                          "A user is already registered with this email address"),
                              }, )

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []

    objects = UserManager()

    def __str__(self):
        return self.email


class UserProfile(models.Model):
    user = models.OneToOneField(User, to_field='email', on_delete=models.CASCADE)
    emp_id = models.CharField(max_length=20, blank=False, default='0', null=False)
    department = models.CharField(max_length=50, blank=True, default='', null=True)

Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个序列化器,将这两个模型结合起来,生成一个嵌套的 JSON。

例如:

{
  "email":"user@gmail.com",
  "is_active":true,
  "profile":
    {
      "emp_id":2,
      "department":2
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我试图做的


class …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

1
推荐指数
1
解决办法
1302
查看次数