В сравнении с 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

Вернуться на верх