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

-1

Недавно я перешел с 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>
  • 2
    Не делай этого. Если вы хотите написать Django, вы должны написать Django
Теги:
django-views
django-database

1 ответ

0
Лучший ответ

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

в 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 %}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню