В сравнении с sqlite и postgres упорядочивание происходит не так, как я предпочитаю.
Я использую django templatetag regroup для вложения группировки в шаблон, моя проблема в том, что regroup не работает так, как я хочу, по какой-то причине он хорошо работает в sqlite, но не в postgres
#Моя модель
class Question(models.Model):
TEXT = "textarea"
TEXT_MULTIPLE = "textmultiple"
SHORT_TEXT = "text"
RADIO = "radio"
CHECKBOX = "checkbox"
DATE = "date"
NUMBER = "number"
SELECT = "select"
FIELD_TYPE = (
(TEXT, "Long text"),
(SHORT_TEXT, "Short text"),
(TEXT_MULTIPLE, "Text multiple"),
(RADIO, "Radio"),
(CHECKBOX, "Checkbox"),
(DATE, "Date"),
(NUMBER, "Number"),
(SELECT, "Select"),
)
field_type = models.CharField(choices=FIELD_TYPE, default=SHORT_TEXT, max_length=13)
category = models.ForeignKey(
Category, on_delete=models.CASCADE
)
section = models.ForeignKey(
Section,
on_delete=models.CASCADE,
blank=True,
null=True,
help_text="Sub category",
)
prompt = models.TextField(help_text="Question name")
required = models.BooleanField(default=True, help_text="Required")
help_text = models.TextField(blank=True, help_text="Description for question")
disabled = models.BooleanField(default=False, help_text="Disable field")
enable_status = models.BooleanField(
default=True, help_text="Enable status for questionaire"
)
enable_date = models.BooleanField(default=True, help_text="Enable date")
enable_field = models.BooleanField(default=True, help_text="Enable Input field")
question_number = models.CharField(
blank=True, max_length=255, help_text="Question number"
)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
created_by = models.ForeignKey(
User, blank=True, null=True, on_delete=models.CASCADE, help_text="Created by"
)
def __str__(self):
return self.prompt
#Мое мнение
def question_list(request, company_id=None):
categories = Category.objects.all()
company_id = request.session.get("company_id")
category = Category.objects.first()
questions = ""
if category is not None:
try:
questions = category.question_set.all().order_by("category")
except AttributeError:
questions = questions
category_id = request.GET.get("category")
if category_id:
questions = (
Category.objects.get(id=category_id).question_set.all().order_by("category")
)
return render(
request,
"questionaire/question.html",
{"questions": questions, "categories": categories, "category": category},
)
Я стремлюсь к чему-то подобному
Category:
question - 1
question - 2
Category:
Section:
question - 5
question - 6
Section:
question - 3
question - 4
Что я получаю:
Category:
--no-question # questions without Sections are missing.
Section:
question - 4
question - 5
question - 6
...
Я полагаю, что проблема связана с postgresql, поскольку я получаю желаемый результат с sqlite.
Я использую этот пример кода для перегруппировки в моем шаблоне django nested template regroup