Django - как получить длину и количество команд в шаблоне? (запрос устанавливается в шаблоне) - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть следующие модули: Продажи, Пол и Тип Django.

Таблица 1:

class Sales(models.Model):
    sname = models.CharField(max_length=100, default="-")
    sgender = models.ForeignKey(MainGender, on_delete=models.CASCADE)
    stype = models.ForeignKey(MainTypes, on_delete=models.CASCADE)
    sdate = models.TextField(default="-")   

    +------+-----+------+------+
    | name |gende| type | date |
    +------+-----+------+------+
    | A    | 1   | 1    | 2019 |
    +------+-----+------+------+
    | B    | 2   | 1    | 2018 |
    +------+-----+------+------+
    | A    | 1   | 3    | 2019 |
    +------+-----+------+------+
    | C    | 2   | 3    | 2017 |
    +------+-----+------+------+
    | A    | 1   | 2    | 2019 |
    +------+-----+------+------+

Таблица 2 (ключ)

class MainGender(models.Model):
    mid = models.CharField(max_length=25, default="-")
    mgender = models.CharField(max_length=25, default="-")

+----+--------+
| id | gender |
+----+--------+
| 1  | Male   |
+----+--------+
| 2  | Female |
+----+--------+
| 3  | -      |
+----+--------+

Таблица 3 (ключ)

class MainTypes(models.Model):
    tid = models.CharField(max_length=50, default="-")
    ttype = models.CharField(max_length=50, default="-")

+----+------+
| id | type |
+----+------+
| 1  | U1   |
+----+------+
| 2  | X2   |
+----+------+
| 3  | B1   |
+----+------+
| 4  | H3   |
+----+------+

Затем я хочу подсчитать все вещи в основной таблице и показать их в шаблоне, как показано ниже

+---------------+---+
| Total records | 5 |
+---------------+---+
| Male          | 3 |
+---------------+---+
| Female        | 2 |
+---------------+---+
| Type U1       | 2 |
+---------------+---+
| Type X2       | 1 |
+---------------+---+
| Type B1       | 2 |
+---------------+---+
| Type H3       | 0 |
+---------------+---+

Я могу получить только общее количество записей в шаблоне по коду ниже

в views.py

def Sale_p(request):
    saless = Sale.objects.all()
    return render(request, 'sale.html', {'sales':saless})

Я пробовал эти коды в шаблоне (продажа. html)

{{ sales|length }} (gives you total records in Table 1, in this example 5)

{{ sales.gender|length }} (gives nothing)

{{ sales.type|length }} (gives nothing) 

{{ sales.gender_set|length }} (gives nothing)

{{ sales.type_set|length }} (gives nothing)

{{ sales.gender(1)|length }} (gives nothing)

{{ sales(gender='1')|length }} (gives nothing)

{{ sales.gender.count() }} (gives nothing)

Они не работали в шаблоне. Я хочу видеть в записях, сколько раз у нас было «мужской» или «женский» или типа и т. Д. ...

в шаблоне, продажа. html

+---------------+--------------------+
| Total records | {{ sales|length }} |
+---------------+--------------------+
| Male          | ?                  |
+---------------+--------------------+
| Female        | ?                  |
+---------------+--------------------+
| Type U1       | ?                  |
+---------------+--------------------+
| Type X2       | ?                  |
+---------------+--------------------+
| Type B1       | ?                  |
+---------------+--------------------+
| Type H3       | ?                  |
+---------------+--------------------+

Какими должны быть коды, чтобы получить результаты для других? Или я должен использовать разные способы в views.py?

1 Ответ

0 голосов
/ 25 февраля 2020

Пожалуйста, обратитесь по ссылке ниже:

https://docs.djangoproject.com/en/3.0/ref/templates/builtins/

...