如何使 django 模型 ManyToMany 字段最初为空?

How to make django model ManyToMany field empty initially?

我有两个相关模型如下。

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author)
    isbn =models.CharField(max_length=15)


class Lending(models.Model):
    member_id = models.ForeignKey(Member)
    name = models.CharField(max_length=100)
    borrowed = models.DateField(auto_now_add=True)
    returning = models.DateField()
    book_list = models.ManyToManyField(Book, related_name='borrowed_books')

我想在借阅创建 HTML 表单中向用户显示图书列表字段时将其设为空。我想确保它在后端模型表单中不为空并且在模型中不为空。我这样做是因为图书列表可能很大,并且在发送数据时将使用 ajax 查询图书以将它们动态添加到 HTML 表单字段中的图书列表中。我该怎么做?

如果您使用的是基于 django class 的视图,您可以覆盖 get_form 方法来编辑表单并设置一些初始值。我可以举个例子 -

class LendingView(generic.CreateView):
    ...
    def get_form(self,form_class=None):
        form = super().get_form(form_class)
        form['book_list'].field.choices = {}
        return form

这将清空您对字段的选择。还有什么疑问评论一下。