gpt4 book ai didi

python - 如何在 Django 中动态添加字段?

转载 作者:太空宇宙 更新时间:2023-11-04 10:16:58 24 4
gpt4 key购买 nike

我想在 Django 1.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

这是我的 admin.py

class AuthorAdmin(admin.ModelAdmin):
admin.site.register(Author, AuthorAdmin)

class BookAdmin(admin.ModelAdmin):
admin.site.register(Book, BookAdmin)

现在是这样的:

enter image description here

我试过使用 Inline , 但我也只能添加一本新书。

我希望能够动态地向一位作者添加多本书。是这样的: enter image description here

我该怎么做?

编辑:

我已经将 AuthorAdmin 更改为:

class AuthorAdmin(admin.ModelAdmin):
formfield_overrides = {
models.ManyToManyField: {'widget': CheckboxSelectMultiple},
}
admin.site.register(Author, AuthorAdmin)

enter image description here

但是我想要“N”个文本框来选择书籍,而不是一个带有“N”个选项的复选框。

最佳答案

你弄错了基数。正如您所写的那样,关系是“一个作者有一本书,一本书有很多作者”,而您显然想要“一本书有一个作者,一个作者有很多书” - 或者可能是“一个或多个作者的书” ,一位作者有一本或多本书”。

在第一种情况下,您必须删除 ForeignKeyAuthor并添加 ForeignKeyBookAuthor - 并使用 AdminInlineAuthor如果您希望能够从 AuthorAdmin 向作者添加书籍.

在第二种情况下,您需要一个 ManyToManyField , 可以在 Book 中或 Author ...

关于python - 如何在 Django 中动态添加字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34770316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com