Django модель.параметры - PullRequest
0 голосов
/ 17 мая 2018

Я переживаю трудное время, пытаясь понять часть кода, который мне дали для обзора:

model.parameters.first()

Это модель Django, и хотя я знаю, каков будет результат, я могуКажется, я не нашел ни одного слова в части «параметров».

Я был бы очень признателен, если бы вы могли либо объяснить, что делает функция «параметр», либо оставить ссылку с объяснением.Я не смог найти его нигде в документации django.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Django добавляет Менеджера с именем «объекты» к каждому классу модели Django. Однако, если вы хотите использовать имя, отличное от «объектов» для диспетчера, вы можете переименовать его в вашей модели как:

class YourModel(models.Model):
 ....
 # custom manager replaces objects manager
  parameters= models.Manager() # in your case
 .....

Так что теперь я могу сделать что-то вроде этого:

YourModel.parameters.first()

Теперь YourModel.objects сгенерирует AttributeError .

0 голосов
/ 17 мая 2018

Похоже, это пользовательский менеджер .

Model.objects - это менеджер по умолчанию, предоставляемый django, но нам разрешено создавать свои собственные, поэтому, например, если у меня была опубликована модель Post с атрибутом, я могу создать Опубликованный менеджер.

class PublishedManager(models.Manager):
    def unpublished(self):
        return self.filter(published=False)

class Post(models.Model):
    title = models.CharField(max_length=30)
    published = models.BooleanField(default=True)
    objects = PublishedManager()

Я мог бы легко сделать:

 Post.objects.unpublished

Даже если unpublished не является атрибутом Post.

Это глупый пример, но я надеюсь, что вы поняли идею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...