如何使 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
这将清空您对字段的选择。还有什么疑问评论一下。
我有两个相关模型如下。
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
这将清空您对字段的选择。还有什么疑问评论一下。