我有一个这样的模型:
class Book(models.Model):
authors = models.ManyToManyField(User) # User is a separate model
readers = models.ManyToManyField(User)
# ... rest of code
我试图在我的视图之外创建一个函数,它需要三个输入:一本书、一个字符串和一个用户。用户被添加到图书的ManyRelatedManager,其对应的字段名与字符串匹配。在
例如,如果函数被调用foo
:
调用foo(Book.objects.get(id=1), 'authors', User.objects.get(id=1))
将导致id为1的用户被添加到id为1的书中的“authors”字段中。类似地,调用foo(Book.objects.get(id=1), 'readers', User.objects.get(id=1))
将导致id为1的用户被添加到id为1的图书中的字段“readers”中。在
我尝试使用Book._meta.get_field()
,但这返回了ManyToManyField本身,而不是ManyRelatedManager。是否有某种内置的方法来获取字段名与字符串匹配的ManyRelatedManager?在
抱歉,如果这个描述令人困惑,我的问题很难用语言表达。如果有人能理解我的问题,感谢你的帮助。谢谢!在
^{} 可以从传递给对象的字符串中获取对象的属性。在
相关问题 更多 >
编程相关推荐