0

내 수업에 대한 설문 조사 시스템을 사용하고 있습니다. 설문 조사 양식을 제공하기 위해 model-form과 을 사용합니다. 나는 분야에서 choices를 사용한다 그러나 나는 다만 만 체크 박스의 마지막 가치를 저장하고 나는 아마 목록으로 모든 선정한 선택을 저장하고 싶다 찾아 낸다. form_valid() 메서드를 변경하려고했지만 모든 필드를 반복하여 다중 선택 항목이 있는지 확인해야합니다. 유연하지 않습니다. 그리고 다른 솔루션을 찾을 수 없습니다 ...django에서 선택 값을 저장하는 방법

이 요구 사항을 어떻게 충족시킬 수 있습니까? 나는 진정으로 초보자입니다.

미리 감사드립니다.

내 질문을 제기 한 후 짧은 시간 내에 답장을 보내 주셔서 감사합니다. 여기 내 코드가있다.

class PollForm(forms.ModelForm): 
    model = Poll 
    fields = [..., 'subject', ...] 
    widgets = {'subject':forms.CheckboxSelectMultiple} 

views.py

class PollView(CreateView): 
    form_class = PollForm 
    template_name = 'poll.html' 

forms.py

CHOICES = (('m','Math'),('f','French'),('s','Science'),('l','literature')) 
class Poll(models.Model): 
    [...] 
    subject = models.CharField(max_length = 5,choices = CHOICES, blank=True) 
    [...]` 

models.py

학생들은 원하는 과목을 선택할 수 있습니다.

답변

0

모델을 변환해야하는 것 같습니다. 만약 당신이 그것을 사용하고있는 구조의 샘플을 제공 할 수 있다면 도움이 될 것입니다. 여전히 검색어를 해결할 수 있습니다. 먼저 선택 사항이 다 대 다 분야 이상임을 확인해야합니다. db에 저장하는 것이 그렇게 쉬운 방법입니다. 사용자의 선택에 예를 복용하려고하자 :

class Choices(models.Model): 
    description = models.CharField(max_length=100) 

class UserProfile(models.Model): 
    user = models.ForeignKey(User, blank=True, unique=True, verbose_name='profile_user') 
    choices = models.ManyToManyField(Choices) 
    def __unicode__(self): 
    return self.name 

을 지금 당신은 당신이 단순히 뭔가를 할 수있는 기본 양식을 만들려면 :

class ProfileForm(forms.ModelForm): 
    Meta: 
    model = UserProfile 

는 이제 기본보기를 제공합니다. 사용 사례에 따라 다음과 같이 편집하여 렌더링 할 수 있습니다.

if request.method=='POST': 
    form = ProfileForm(request.POST) 
    if form.is_valid(): 
    profile = form.save(commit=False) 
    profile.user = request.user 
    #Implement this as a pre-save so that you can add additional value 
    profile.save() 
else: 
    form = ProfileForm() 

희망이 있습니다.

+0

고맙습니다. 필요에 따라 업데이트! – ucag

+0

이것이 당신을 도왔다는 것을 기쁘게 생각합니다. 동일한 문제를 겪고있는 다른 사람들도 같은 논리를 사용할 수 있도록 답을 표시 할 수 있습니까? 감사 –