ИСПОЛЬЗОВАНИЕ Raw SQL в Django

Я недавно перешел с PHP на Django. Я создаю проект, который работает на Django .. Я привык писать собственные SQL в PHP и, следовательно, я хочу использовать raw () для фильтрации результатов из моей базы данных в Django.

Однако я не могу полностью понять, как работает Django ..

Пожалуйста, найдите мой код ниже.

В настоящее время я получаю нижеупомянутый вывод

[('11677795635',), ('12345',)]

Я хочу использовать некоторые за Зацикливание и печать результатов в указанном ниже формате.

  • 11677795635
  • 12345
  • Можете ли вы помочь мне о том, как для цикла в Django ..

    В PHP
    то же самое было возможно

    $query=mysql_query("SELECT  abcdashboard_customerinfo.customerbuyingid FROM abcdashboard_customerinfo WHERE abcdashboard_customerinfo.customerbuyingid in (select DISTINCT abcdashboard_orders.customerid from abcdashboard_orders)");
    $queryrun=mysql_num_rows($query);
    for ($f=0; $f <$queryrun; $f++)
    {
    ${'customer'.$f}=mysql_result($query,$f, 'customerbuyingid');
    echo ${'customer'.$f};
    }
    

    models.py

    class customerinfo(models.Model):
    customerbuyingid = models.CharField(max_length=300, default='invalid customer id in database')
    customername = models.CharField(max_length=300, default='invalid customer name in database')
    customerphonenumber = models.CharField(max_length=12, default='0000000000')
    customermailid= models.CharField(max_length=80, default='[email protected]')
    
    class orders(models.Model):
    orderid = models.CharField(max_length=200)
    orderstatus = models.CharField(max_length=10)
    externalpurchaseid = models.CharField(max_length=100)
    externalstatus = models.CharField(max_length=100)
    customerid = models.CharField(max_length=100)
    ops = models.CharField(max_length=100)
    orderdate = models.DateField()
    updatedon = models.DateTimeField(default=timezone.now)
    

    views.py

    def index(request):
    all_customer = customerinfo.objects.all()
    cursor = connection.cursor()
    cursor.execute('''SELECT abcdashboard_customerinfo.customerbuyingid FROM abcdashboard_customerinfo WHERE abcdashboard_customerinfo.customerbuyingid in (select DISTINCT abcdashboard_orders.customerid from abcdashboard_orders) ''')
    row = cursor.fetchall()
    print (row)
    context = {"row": row}
    return render(request, "abcdashboard/index.html", context)
    

    Index.html

    <html>
    <head>
    <title>
    
    </title>
    
    </head>
    
    <body>
    <ul>
    <h2 align="center"> SQL Queries display </align> </h2>
    
    {% block content %}
    
    {{ row }}
    
    {% endblock %}
    </ul>
    
    </body>
    
    </html>
    

    -1

    Решение

    Просто замените:

    в views.py:

    row = cursor.fetchall()
    print (row)
    context = {"row": row}
    

    с:

    ids = []
    for row in cursor.fetchall():
    id = row[0]
    ids.append(id)
    context = {'rows': ids}
    ...
    

    в index.html:

    {{ row }}
    

    с

    {% for id in rows %}
    {{ id }}
    {% endfor %}
    
    0

    Другие решения

    Других решений пока нет …

    По вопросам рекламы [email protected]