【发布时间】:2019-03-15 14:12:29
【问题描述】:
如何使用另一个对象来确定对象,如下所示?
for author in book.authors.all():
author.some_func(book)
考虑到我们如何使用它,输入这本书作为参数是多余的。有没有办法从本质上确定这本书?类似于我们如何使用“自我”?在下面的 some_func() 方法的伪代码中,什么代码将用于“如果从 Book 对象调用为字段”和“use_this_book = 调用 Book 对象”
class Book(models.Model):
authors = ManyToMany(Author, settings)
class Author(models.Model):
fields = relationships
def some_func(self, book):
author = self
if called as field from Book object: # replace this line
use_this_book = calling Book object # and this line
else:
use_this_book = book
return do_something_func(author, use_this_book)
【问题讨论】:
-
这个问题不是很清楚。为什么你认为通过书是多余的?一个方法不能知道它是在一个对象上调用的,而该对象是另一个对象的属性;即使这是可能的,它也不会是 Pythonic,明确性是一种美德。
标签: django django-models relationship