Mig*_*les 1 django django-models python-3.x
鉴于以下情况: 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)
Run Code Online (Sandbox Code Playgroud)
管理器.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()
Run Code Online (Sandbox Code Playgroud)
如何编写模型管理器以避免循环导入?它实际上不起作用,我的猜测是我必须在我的管理器中创建我的对象而不将它称为类 Person,而是我应该使用更通用的通用 Django 名称。有什么想法吗?
这里有几个选项。
首先,您可以在同一个文件中定义模型和管理器;Python 没有要求或期望每个类都在自己的文件中。
其次,您实际上并不需要将模型导入管理器。经理属于模特,而不是相反;在管理器中,您可以通过self.model.
最后,如果这就是你的经理所做的一切,那就完全没有理由了。管理者已经有了create方法;它需要关键字参数,而不是字典,但这仅意味着您可以使用Person.objects.create(**person_dict).
| 归档时间: |
|
| 查看次数: |
1112 次 |
| 最近记录: |