2

我想知道在使用位置参数调用模型时是否有明确的字段顺序?

让我们以标准教程为例:

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

创建对象的标准方法是使用关键字参数,但我也可以这样做。

newPoll = Poll(123, "What is your favorite color?", timezone.now())

在这种情况下,值按以下顺序分配给字段:“id”、“question”和“pub_date”

我的问题是 Django 如何将这些位置参数映射到模型的字段变量?如果这有一个一致的逻辑,那么我可以在模型类或 manager.create 方法中使用位置参数吗?(这可能不是一个好主意,仅用于学术目的)

我曾尝试阅读 Django 源代码中的 base.py 文件,但由于我刚刚开始使用 Django,所以我需要一些时间来理解所有内容。因此,如果有人可以解释这一点,那就太好了。

4

1 回答 1

0

该文档仅将 create 方法称为create(**kwargs),因此我将位置参数视为未记录的行为,并且对于可维护的代码不可靠。在我的 Django 版本中,这正是来源QuerySet所说的,所以位置参数不起作用,除非有一些我没有看到的魔法,但它可能与你的版本不同。

于 2012-12-06T21:17:06.677 回答