0

I am trying to display the state values for each country name in Django app. To save the user response, I am using Django generic CreateView. My models look something like this:

class Question(model.Models):
    ques_id = models.AutoField(primary_key=True)
    country = models.ForeignKey(Country)
    state = models.CharField(max_length=...)


class Test(model.Models):
    test = models.AutoField(primary_key=True, )
    test_num = models.CharField(max_length=6, )


class Response(model.Models):
    response = models.AutoField(primary_key=True)
    test_id = models.ForeignKey(Test, related_name='test', )
    ques_offered = models.ForeignKey(Question, related_name='choice',
    ans_submitted = models.CharField(max_length=240, 

To display the available choices for field state for each country value (in the db), I am looping through Django management form for the formset in my template. However, I am unable to get to the values of field state instead I am getting the country values.

Additional info:

The views that I am using to achieve this:

class ResponseCreateView(CreateView):
    template_name = ...
    model = Test
    form_class = # Form_name

def get_context_data(self, **kwargs):

    data = super(ResponseCreateView, self).get_context_data(**kwargs)
    if self.request.POST:
        data['get_response'] = responseFormset(self.request.POST, self.request.FILES)
    else:
        data['get_response'] = responseFormset()

    def form_valid(self, form):
        context = self.get_context_data()
        get_response = context['get_response']

        with transaction.atomic():
            if get_response.is_valid():
                self.object = form.save()
                get_response.instance = self.object
                get_response.save()
                return redirect('...')
            else:
                context.update({'get_response': get_response,
                                })
                return self.render_to_response(context)
        return super(ResponseCreateView, self).form_valid(form)

0 Answers0