Как сохранить MultipleChoiceField в Django

#python #django #database #web #model

#python #django #База данных #паутина #Модель

Вопрос:

Мне было интересно, как я могу сохранить MultipleChoiceField в базу данных Django (при отправке формы)?

models.py

 class Model1(models.Model):
    field = models.CharField(max_length=200, null=False, blank=False, default='')
 

forms.py

 OPTIONS = (
    ('Option 1', 'Option 1'),
    ('Option 2', 'Option 2'),
    ('Option 3', 'Option 3'),
)
class Model1Form(forms.ModelForm):
    field = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=OPTIONS)

    class Meta:
        model = Model1
        fields = '__all__'
 

Если вам нужна дополнительная информация, дайте мне знать! Спасибо за помощь.

Ответ №1:

Вы можете сделать это следующим образом :-

forms.py

 from django import forms 

CHOICES =( 
    ("1", "option 1"), 
    ("2", "option 2"), 
    ("3", "option 3"), 
    ("4", "option 4"), 
) 
class ChoiceForm(forms.Form): 
    field = forms.MultipleChoiceField(choices = CHOICES) 
 

multiple.html

 <form method="POST"> 
    {% csrf_token %} 
    {{ form.as_p }} 
    <input type="submit" value="Submit"> 
</form> 
 

urls.py

 from django.urls import path 


from .views import multiple_view 

urlpatterns = [ 
    path('', multiple_view ), 
] 
 

views.py

 from django.shortcuts import render 
from .forms import ChoiceForm 

def multiple_view(request): 
    context = {} 
    context['form'] = ChoiceForm() 
    return render( request, "multiple.html", context) 
 

Комментарии:

1. Но куда бы он его сохранил?

2. @Skarf, в базе данных

3. Вы также можете сделать все это только в формах.