Djangoimportexport管理:如何在多对多关系中导出模型名

2024-09-29 01:28:14 发布

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

考虑到模型:

#models.py
class Author(models.Model):
    name = models.CharField(max_length=200)

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.ManyToManyField(Author, through = 'AuthorBook')

class AuthorBook(models.Model):
    author = models.ForeignKey(Author)
    book =  models.ForeignKey(Book)
    some_info = models.CharField(max_length=200)

以及

^{pr2}$

当我试图在Book的管理面板上导出数据时,我得到了一个错误:

'Book' object has no attribute 'name'

我被困在这几个小时,我能找到的最接近的答案是this,但没有解决我的问题。在


Tags: namepy模型modeltitlemodelslengthmax
1条回答
网友
1楼 · 发布于 2024-09-29 01:28:14

您指定的模型是Book,它没有name属性。我猜你的函数dehydrate_livro()是用一个book作为参数调用的,你错误地调用了Author(仅仅因为一个以大写字母开头的变量并不能使它成为任何类的实例)。然后,您的方法尝试访问这本书中的name属性,Author.name,但是没有。在

尝试:

def dehydrate_livro(self,book):
    return book.author.all()

这将返回您的书的作者列表。在

相关问题 更多 >