Отображение поля "многие ко многим" в виде флажка в шаблоне с createview

Вид:

class addrecipe(CreateView):
  model = Recipe
  template_name = 'recipebook/addrecipe.html'
  fields = '__all__'

Модель:

class Recipe(models.Model):
  name = models.CharField(max_length=50)
  description = models.CharField(max_length=200)
  servings = models.IntegerField(default=1, blank=False)
  tools = models.ManyToManyField(Tool)

def __str__(self):
    return self.name

Шаблон:

    {% extends 'recipeBook/base.html' %}

{% block title %}Add New Recipe{% endblock title %}

{% block header %}
<header>
  <a href="{% url 'recipeBook:recipe_list' %}">Recipe list</a>
</header>
{% endblock header %}

{% block content %} 
<h1>Add New Recipe</h1>

<form action="" method ="post">
  {% csrf_token %}
  <table>
    {{ form.as_table }}
  </table>
  <input type="submit" value="Add">
</form>
{% endblock content %}

В настоящее время поле инструментов отображается следующим образом:

enter image description here

Я пытаюсь найти способ отобразить все инструменты в базе данных в виде контрольного списка, где пользователь может просто отметить каждый инструмент, который имеет отношение к рецепту, который он добавляет, или добавить новый инструмент, если его еще нет в списке. Есть ли способ добиться этого?

Мне нужно было добавить класс формы к моему представлению следующим образом:

class addrecipe(FormView):
form_class = AddRecipeForm
model = Recipe
template_name = 'recipebook/addrecipe.html'
fields = '__all__'
extra_context = {
    'recipe_list': Recipe.objects.all()
}
Вернуться на верх