gpt4 book ai didi

django - 如何在给定 Django 模型对象或查询集的情况下使用 Django 代理模型

转载 作者:行者123 更新时间:2023-12-05 03:11:34 32 4
gpt4 key购买 nike

我有 2 个关于模型代理的问题,

  1. 如何从模型对象创建代理对象?
  2. 如何从模型查询集创建代理查询集?

例如,假设我们定义了:

from django.contrib.auth.models import User

class MyProxyUser(User):
class Meta:
proxy = True

def say_hello(self):
return "Hello, {}".format(self.get_full_name())

成功转换的一种方法是重新查询对象,这是不必要的。

# Retrieve from model Object.
# Assume: request is HttpRequest from authenticated user.
my_user = MyProxyUser.objects.get(pk=request.user.pk) # Hit Database
my_user.say_hello()


# Retrieve from model QuerySet.
# Assume: users = User.objects.all()
MyProxyUser.objects.filter(pk__in=users)

最佳答案

你只需要分配你的查询集的模型属性

users = User.objects.all()
users.model = MyProxyUser
users.first().say_hello()

编辑:要将代理类分配给 Django 模型对象,请尝试

    user = User.objects.all()
user.__class__ = MyProxyUser

关于django - 如何在给定 Django 模型对象或查询集的情况下使用 Django 代理模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36764874/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com