Django и HTML - Как применить стиль только к одному опросу
Я создал проект Django, в котором у меня есть два опроса. В одном из опросов пользователю предлагается выбрать одно изображение в качестве ответа. Пока что опрос работает, поскольку я могу отображать изображения и записывать ответ пользователя (который, кстати, является названием изображения, а не самим изображением). Однако я хочу расположить все изображения в контейнере в виде круга. Я хочу применить эту стилизацию только к одному опросу с изображениями, но не к другим опросам. Это было сложно, потому что мой синтаксис HTML использует циклы "for" для перебора опросов, а также я создал оба опроса, используя одну и ту же Django ModelForm (думаю, это не должно быть проблемой). Пожалуйста, мне нужны рекомендации о том, как это можно сделать. До сих пор я пробовал некоторые утверждения "if-then", но они оказались неверными. Смотрите ниже HTML файл, который у меня есть с кодом для контейнера круга в конце:
А вот мои представления Django:
class ResponseForm(ModelForm):
class Meta:
model = Response
fields = ['question', 'answer']
def __init__(self, *args, user=None, **kwargs):
self.user = user
super().__init__(*args, **kwargs)
def save(self, commit=True):
response = super().save(commit=False)
response.user = self.user
return response.save()
def take_questionnaire_fs(request, questionnaire_id):
ResponseFormSet = modelformset_factory(Response, form=ResponseForm, extra=0)
if request.method == 'POST':
formset = ResponseFormSet(request.POST or None, request.FILES, form_kwargs={'user': request.user})
if formset.is_valid():
print("Formset is valid")
formset.save()
return HttpResponseRedirect(reverse ('questionnaires:questionnaire_index'))
else:
print("Formset is NOT valid")
print(formset.errors)
print(formset.non_form_errors())
questionnaire = Questionnaire.objects.get(id=questionnaire_id)
questions = Question.objects.filter(questionnaire_id=questionnaire_id)
answers = Answer.objects.filter(questionnaire_id=questionnaire_id)
return render(request, 'questionnaires/questionnaire_lec.html', {
'questions': questions,
'answers': answers,
'questionnaire': questionnaire,
})
А мои модели:
User = settings.AUTH_USER_MODEL
class Questionnaire(models.Model):
name = models.CharField(max_length=255)
text = models.CharField(max_length=200)
def __str__(self):
return self.name
class Question(models.Model):
text = models.CharField(max_length=200)
questionnaire = models.ForeignKey(Questionnaire, on_delete=models.CASCADE, related_name='questions')
def __str__(self):
return self.text
class Answer(models.Model):
questionnaire = models.ForeignKey(Questionnaire, on_delete=models.CASCADE, related_name='answers', default='')
text = models.CharField(max_length=200)
image = models.CharField(null=True, max_length=20)
def __str__(self):
return self.text
class Response(models.Model):
user = models.ForeignKey(User, on_delete = models.CASCADE)
date = models.DateTimeField(auto_now_add=True)
question = models.ForeignKey(Question, on_delete = models.CASCADE)
answer = models.ForeignKey(Answer, on_delete = models.CASCADE)
def __str__(self):
return '%s - %s - %s - %s' % (self.user, self.question, self.answer, self.date)