Как выбрать элемент несколько раз в django m2m поле в форме
Я новичок и изучаю django, здесь я хочу позволить пользователю выбирать элементы несколько раз в m2m поле, например, здесь у меня есть модель icecream с классом flavor, связанным с ним в m2m rel, когда форма отображается в шаблоне, я хочу, чтобы пользователь мог выбрать 1 вариант много раз. мои модели:
class IceCream(models.Model):
hold_choice = (
('Cone', 'Cone'),
('Cup','Cup'),
)
type_name = models.ForeignKey('IceCreamType', on_delete=models.CASCADE, null=True, blank=True)
flavor = models.ManyToManyField(Flavor, verbose_name='total scopes')
toppings = models.ManyToManyField(Topping)
holder = models.CharField(max_length=4, choices=hold_choice, default='Cone')
number_of_icecreams = models.PositiveIntegerField(default=1)
def __str__(self):
return str(self.type_name)
@property
def total_scope(self):
return self.flavor_set.all().count()
модель аромата имеет несколько вариантов:
class Flavor(models.Model):
CHOCOLATE = 'Chocolate'
VANILLA = 'Vanilla'
STRAWBERRY = 'Strawberry'
WALLNUT = 'Wallnut'
KULFA = 'Kulfa'
TUTYFRUITY = 'Tuttyfruity'
choices = (
(CHOCOLATE, 'chocolate scope'),
(VANILLA, 'vanilla scope'),
(STRAWBERRY, 'strawberry scope'),
(WALLNUT, 'wallnut scope'),
(KULFA, 'kulfa scope'),
(TUTYFRUITY, 'tutyfruity scope'),
)
flavor = models.CharField(max_length=20, choices=choices, null=True)
def __str__(self):
return self.flavor
теперь если я отображу форму для этого, как можно сделать так, чтобы пользователь мог выбрать 1 элемент (или области) много раз, а также метод, который я создал в модели IceCream не работает и выдает ошибку IceCream не имеет атрибута flavor_set.
представление для его отображения
class OrderIceCream(CreateView):
model = IceCream()
template_name = 'prac/home.html'
fields = '__all__'
Шаблон:
<h1 class="text-center mt-5">Order Ice Cream</h1>
<div class="container border-dark">
<form action="" method="post">
{% csrf_token %}
{{ form|crispy }}
<input type="submit" class="btn btn-primary mb-3 mt-3">
</form>
</div>
url is:
urlpatterns = [
path('home/<str:pk>/', IceCream.as_view(), name='home'),
path('order/<str:pk>/', OrderIceCream.as_view(), name='order-icecream'),
]
<