/ / Dados não são mostrados para identidades diferentes de modelos - django, django-models, django-forms, django-views

Os dados não são mostrados para identidades diferentes dos modelos - django, django-models, django-forms, django-views

Eu estou tentando criar um aplicativo de pesquisa. Mas, quando eu crio 2 pesquisas, as perguntas da segunda pergunta não aparecem no modelo. Há 3 perguntas para a pesquisa 1 (que funciona muito bem) e 2 perguntas para a pesquisa 2 (que não aparecem no modelo) .

Aqui estão meus modelos:

class Survey(models.Model):
name = models.CharField(max_length=400)
description = models.TextField()
user = models.ForeignKey(User, related_name="user_survey_set")

def __unicode__ (self):
return (self.name)

def questions(self):
if self.pk:
return Question.objects.filter(survey=self.pk)
else:
return None

def user_data(self):
p = self.user
return p.name

class Category(models.Model):
name = models.CharField(max_length=400)
survey = models.ForeignKey(Survey)

def __unicode__(self):
return (self.name)

def validate_list(value):
values = value.split("")
if len(values) < 2:
raise ValidationError("A resposta precisa ter mais de um item")
pass

class Question(models.Model):
TEXT = "text"
RADIO = "radio"
SELECT = "select"
SELECT_MULTIPLE = "select-multiple"
INTEGER = "integer"

QUESTION_TYPES = (
(TEXT, "text"),
(RADIO, "radio"),
(SELECT, "select"),
(SELECT_MULTIPLE, "Select Multiple"),
(INTEGER, "integer"),
)


text = models.TextField()
required = models.BooleanField()
category = models.ForeignKey(Category, blank=True, null=True)
survey = models.ForeignKey(Survey)
question_type = models.CharField(max_length=200, choices=QUESTION_TYPES, default=TEXT)
choices = models.TextField(blank=True, null=True,
help_text="if the question type is "radio", "select" or "select multiple" provide a comma separated list for this question")

Esta é a visão:

def SurveyDetail(request, id):
survey = Survey.objects.get(id=id)
category_items = Category.objects.filter(survey=survey)
categories = [c.name for c in category_items]
print "categories for this survey:"
print categories
if request.method == "POST":
form = ResponseForm(request.POST, survey=survey)
if form.is_valid():
response = form.save()
return HttpResponseRedirect("/confirm/%s" % response.interview_uuid)
else:
form = ResponseForm(survey=survey)
print form
# TODO sort by category
return render(request, "survey.html", {"response_form": form, "survey": survey, "categories": categories})

O que há de errado com o código?

Respostas:

0 para resposta № 1

Já entendi o problema.

A nova pesquisa precisa de uma nova categoria para mostrar as perguntas no modelo.