Я столкнулся с проблемой при получении данных из sql в django? Он возвращает None
Это test.py
from django.http import HttpResponse
import mysql.connector
MySQLdb = mysql.connector
host = 'xxxxxx'
username = 'xxxx'
db = 'xxxx'
port = '3306'
password = 'xxxxxx'
class sql:
def __int__(self):
pass
def mysql_connection(self):
try:
mysql_conn = mysql.connector.connect(host=host, user=username,
database=db, password=password,
port=port, ssl_disabled=True)
print("Connection Successfully Established...")
return mysql_conn
except Exception as e:
print("mysql connection error".format(e))
exit(0)
def update_approval(self, que):
d = self.mysql_connection()
cursor = d.cursor()
cursor.execute(que)
result = cursor.fetchone()
return result
Это мой views.py
from django.shortcuts import render, redirect
from .forms import InputForm, TestForm
from django.core.mail import send_mail
from .test import sql
import mysql.connector
MySQLdb = mysql.connector
def index(request):
if request.method == "POST":
form = InputForm(request.POST)
# ids = form["git_Id"].value()
# print(ids)
# query = f'SELECT request_id FROM request_form_mymodel where git_Id={ids};'
#
# p = obj.update_approval(query)
obj = sql()
# git_id = 5666
ids = form.data["git_Id"]
print(ids)
# query = "SELECT request_id FROM request_form_db.request_form_mymodel where git_Id='%s'" % ids
q = "SELECT request_id FROM request_form_db.request_form_mymodel where git_Id={}".format(ids)
p = obj.update_approval(q)
print(p)
approve_url = f"http://my_url_path/test?request_id={p}"
if form.is_valid():
send_mail(
'KSA Test Activation',
approve_url,
'my_sender_email_id',
['receiver_id'],
fail_silently=False,
)
form.save()
form = InputForm()
else:
form = InputForm()
return render(request, 'home.html', {'form': form})
Это forms.py `
from django import forms
from .models import MyModel, TestModel
class InputForm(forms.ModelForm):
class Meta:
model = MyModel
fields = ["git_Id", "git_Response"]
This is models.py
from django.db import models
import uuid
# Create your models here.
class MyModel(models.Model):
git_Id = models.CharField(max_length=200)
git_Response = models.CharField(max_length=200)
is_approved = models.IntegerField()
request_id = models.UUIDField(primary_key=False,
default=uuid.uuid4,
editable=False,
unique=True)
Здесь я получил вывод на ссылку электронной почты : http://path_of_my_url/test/?request_id=None
id запроса хранится в базе данных путем генерации UUID. Но я столкнулся с проблемой получения идентификатора запроса в url .Он всегда возвращает none в url. Но когда я запускаю test.py, создавая объект на классе sql и запуская функцию, то все возвращается отлично. пожалуйста, помогите мне в этом вопросе.
Должно быть form.cleaned_data
, а не form.data
, поэтому в views.py:
ids = form.cleaned_data["git_Id"]