我想在django1.8中动态添加字段。你知道吗
这是我的型号.py你知道吗
class Book(models.Model):
title = models.CharField(max_length=100)
def __str__(self):
return self.title
class Author(models.Model):
name = models.CharField(max_length=100)
books = models.ManyToManyField(Book)
def __str__(self):
return self.name
这是我的管理员.py你知道吗
class AuthorAdmin(admin.ModelAdmin):
admin.site.register(Author, AuthorAdmin)
class BookAdmin(admin.ModelAdmin):
admin.site.register(Book, BookAdmin)
下面是它现在的样子:
我试过使用Inline,但也只能添加一本新书。你知道吗
我该怎么做?你知道吗
编辑:
我已将authoramin更改为:
class AuthorAdmin(admin.ModelAdmin):
formfield_overrides = {
models.ManyToManyField: {'widget': CheckboxSelectMultiple},
}
admin.site.register(Author, AuthorAdmin)
但是,我希望用“N”文本框来选择书籍,而不是一个带有“N”选项的复选框。你知道吗
您需要对图书使用
ManyToMany
字段:Django doc表示
ManyToMany
。你知道吗你把基数搞错了。正如你所写的,这种关系是“一个作者有一本书,一本书有许多作者”,而你显然想要“一本书有一个作者,一个作者有许多书”——或者可能是“一本书作为一个或多个作者,一个作者有一本或多本书”。你知道吗
在第一种情况下,您必须删除
Author
中的ForeignKey
,并将ForeignKey
添加到Author
中的Book
,如果您希望能够从AuthorAdmin
向作者添加书籍,则必须在Author
中使用AdminInline
。你知道吗在第二种情况下,需要一个
ManyToManyField
,可以是Book
或Author
。。。你知道吗相关问题 更多 >
编程相关推荐