【发布时间】:2016-12-13 16:27:29
【问题描述】:
Django 版本 1.8.16 pyodbc 版本:3.0.11b16
我一直在尝试为项目制作视图/提交表单。 我需要实现的基本目标是使用 MS SQL Server 2014 中的存储过程查看和编辑/保存表单中的数据。我可以在视图页面中使用存储过程,但无法通过编辑来执行此操作项目并添加一个新项目。
模型.py
class procedures():
def view_patientsp(self, patid):
cursor = connection.cursor()
ret = cursor.execute("EXEC PR_PRES_viewpatient @uid=? ", (patid))
cursor.close()
return ret
class Patient(models.Model):
patientid = models.AutoField(db_column='PatientID', primary_key=True)
pyear = models.DecimalField(db_column='Pyear', max_digits=10, decimal_places=0, blank=True, null=True)
dref = models.DecimalField(db_column='DRef', max_digits=10, decimal_places=0, blank=True, null=True)
title = models.TextField(db_column='Title', blank=True, null=True)
fname = models.TextField(db_column='FName', blank=True, null=True)
lname = models.TextField(db_column='LName', blank=True, null=True)
dob = models.DateTimeField(db_column='DOB', blank=True, null=True)
pamonth = models.TextField(db_column='PAMonth', blank=True, null=True)
payear = models.TextField(db_column='PAYear', blank=True, null=True)
padays = models.TextField(db_column='PADays', blank=True, null=True)
sex = models.TextField(db_column='Sex', blank=True, null=True)
views.py
def view_patient(request):
if request.method == 'POST':
form = viewpatientform(request.POST)
return render(request, 'lis/view.html', {'form': form})
else:
form = viewpatientform()
if form.is_valid():
procedure = procedures()
ret = procedure.view_patientsp(request.POST['fields'])
return render_to_response('lis/view.html', {'form': form})
urls.py
urlpatterns = [
url(r'^$', views.pat_list, name='index'),
url(r'^view/(?P<patid>\d+/)$', views.view_patient, name='viewpatient'), ]
view.html
{% block body %}
{% load materializecss %}
{{ form|materializecss }}
<button type="submit" class="btn btn-primary">Submit</button>
{% endblock %}
【问题讨论】:
-
您使用存储过程而不是 Django ORM 是否有原因? Django 通过 ORM 生成自己的 SQL。非常不建议在这种情况下使用存储过程。还请包括您正在使用的 django-pyodbc 版本及其链接,因为有很多版本。另外,你是在 Windows 还是 Linux 上运行 Django?
-
@FlipperPA 我正在使用 Windows 7 64 位 Django-Pyodbc:版本:1.0.1 我正在现有 Windows 应用程序之上构建应用程序,因此使用 Django。我正在使用现有的存储过程,因此 Windows 应用程序中的任何更改都将包含在 Web 应用程序中
标签: python sql-server django pyodbc django-pyodbc