gpt4 book ai didi

Django 模型管理器.py 和模型.py

转载 作者:行者123 更新时间:2023-12-05 01:01:55 26 4
gpt4 key购买 nike

鉴于以下情况:models.py

from .managers import PersonManager
from django.db import models

class Person(models.Model):
first_name = models.CharField(max_length=256)
last_name = models.CharField(max_length=256)

ma​​nagers.py

from .models import Person
from django.db import managers

class PersonManager(models.Manager):
def create(self, person_dict):
new_person = Person(
first_name=person_dict['first_name']
last_name=person_dict['last_name'])
new_person.save()

如何编写模型管理器以避免循环导入?它实际上不起作用,我的猜测是我必须在我的管理器中创建我的对象而不将其称为类 Person,而是我应该使用更通用的通用 Django 名称。有什么想法吗?

最佳答案

这里有几个选项。

首先,您可以在同一个文件中定义模型和管理器; Python 没有要求或期望每个类都在自己的文件中。

其次,您实际上不需要将模型导入管理器。管理者属于模型,而不是相反;在管理器中,您可以通过 self.model 引用模型类。

最后,如果这就是你的经理所做的一切,那根本就没有理由这样做。管理者已经有了 create 方法;它需要关键字参数,而不是字典,但这只是意味着您可以使用 Person.objects.create(**person_dict) 调用它。

关于Django 模型管理器.py 和模型.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38497181/

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