使用相关对象管理器的create方法时,Django如何分配外键?

2024-10-02 20:40:52 发布

您现在位置:Python中文网/ 问答频道 /正文

使用相关对象管理器的create方法时,Django如何分配外键?在

我这样问是因为当我创建自己的create方法时,外键不是自动设置的。在

下面是一个例子:

class ModelAQuerySet(models.QuerySet):
    def create(self, **kwargs):
        print('create:')
        print(kwargs)
        return super().create(**kwargs)

    def create_with_other_options(self, **kwargs):
        print('create_with_other_options:')
        print(kwargs)
        return self.create(**kwargs)

class ModelABaseManager(models.Manager):
    use_for_related_fields = True    

ModelAManager = ModelABaseManager.from_queryset(ModelAQuerySet)

class ModelA(models.Model):
    objects = ModelAManager()
    user = models.ForeignKey('User', related_name='modela_set')

当我使用这些方法时:

^{pr2}$

Tags: 方法selfreturnmodelsdefcreatewithkwargs