- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
Django 版本 1.8.16pyodbc版本:3.0.11b16
我一直在尝试为一个项目制作一个查看/提交表单。我需要实现的基本目标是在 MS SQL Server 2014 中使用存储过程查看和编辑/保存表单中的数据。我能够在 View 页面中使用存储过程但无法通过编辑进行项目并添加一个新项目。
模型.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)
View .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})
网址.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 %}
最佳答案
您有几个选择。我将尝试在这里概述它们,因为我有一个类似的项目,我们正在使用另一种语言编写的非常大的站点,并由带有存储过程的 SQL Server 支持,我们正在缓慢但肯定地迁移到 Django。
我们的目标是随着时间的推移进行全面重写。这意味着用 Django 的模型和 View 替换存储过程中的逻辑,因为 ORM 非常强大。我们发现它减少了重复并显着提高了可重用性,从而减少了代码总量。
您可以使用 Django 的 inspectdb
等功能来生成一组初始 Django 模型以与您的数据库进行交互。它需要一些改进,但这使我们能够使用一些功能(如 Django 的管理)对旧数据库进行 crud 操作,而不是编写三层代码来执行简单的查找表更新。我不建议自定义管理,但将它用于它擅长的地方是开始熟悉 Django 做事方式的好方法。
您可以使用 Django 的许多功能(例如模板和表单)来调用存储过程。例如,在 FormView
中,您可以这样做:
class MyFormView(FormView):
template_name = 'home.html'
form_class = MyForm
success_url = '/hooray/'
def form_valid(self, form):
sender = form.cleaned_data['sender']
message = form.cleaned_data['message']
cursor = connections['default'].cursor()
cursor.execute('EXEC usp_insert_message @sender = ?, message = ?', sender, message)
return super(MyFormView, self).form_valid(form)
但是,请谨慎编写 FrankenDjango。我们在过渡期间努力确保两个网站可以并行运行,并在两者之间共享身份验证。这使我们能够随着时间的推移将功能转移到新的 Django 站点,同时在新代码库中以正确的方式做事。在您以正确的方式开始使用模型、 View 和模板之后,您可能会惊喜地发现您可以如此快速地开始移动,尤其是使用 Django 丰富的现成包生态系统。
最后一点:我强烈建议为您的 Django 数据库引擎使用 django-pyodbc-azure
(它适用于 SQL Server 或 Azure)。随着时间的推移,我发现它是最积极维护的,并且刚刚工作。您可以像这样为 Django 1.8 安装它:
pip install django-pyodbc-azure<1.9
可在此处找到更多详细信息:https://github.com/michiya/django-pyodbc-azure
祝你好运!
关于python - Django 与 MSSQL 使用 Pyodbc : Model Forms not being saved,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41125936/
我正在从tangowithdjango学习django 。我试图理解 populate_rango.py 的代码。代码是: import os os.environ.setdefault('DJANG
我试图理解Rserve参数--save,-no-save和--vanilla之间的区别。我在文档或任何论坛中都没有看到任何描述这些效果的内容。有谁确切地知道这些是做什么的? 在OSX中,我需要指定其中
我正在使用 CoreData 制作一个基于文档的应用程序。我可以创建一个新文档,编辑该文档,然后保存它。文件已创建并可以打开。打开后,数据会正确加载。但是,一旦进行了初始保存,所有后续保存都不会执行任
下面提出了类似的问题 How to save complete web page 但目前还没有答案。预期的结果是得到很多文件,一些文件来存储图像等。 我使用了以下内容,它会弹出一个窗口说保存文件 va
我们一直在测试一种不同的保存方式。然而,结果并不像我们预期的那样。我们有创建调查的方法,每个调查有多个问题。我们测试了几个案例,它们都以相同的方式提交查询。 @Transactional class
我想了解JAP Repotitoty的详细信息。我创建了一个服务类、实体类和存储库类,如下所示(用 kotlin 编写)并执行了 ItemService#update 方法。 执行 item2Repo
我正在开发我的第一个 Firefox 扩展。我正在尝试将数据保存在浏览器的本地存储中(使用 Window.localStorage 很容易,但我正在关注 official recommandation
这让我很郁闷。我是 C Sharp 的新手,因此需要一些帮助。我的保存/另存为完全是胡说八道。 真的有两个问题: 如何在不弹出保存对话框的情况下保存对现有文件的更改?如果我单击“保存”,它会弹出一个对
我有一个代码可以将 XML 文件保存到我的目录中。它在我的本地主机和我的共享主机中实际上就像一个魅力,但它在我的 Linux VPS 中不起作用。 我总是遇到这个错误: 警告:DOMDocument:
有没有办法在 django 管理站点中同时“另存为”和“保存并添加另一个”? 最佳答案 我不认为按钮引用的 URL 有任何神奇之处,因此您可以通过简单地覆盖每个 http://docs.djangop
创建 playramework 的模型时,我们可以使用 save() 或 _save() 方法。为什么这两种方法在框架中都可用,原因是什么? (在这种情况下,他们做同样的事情 - 将对象保存到数据库)
我见过两个都调用 $save 的代码和 save到 $resource 的 Angular 。 有什么区别,你什么时候使用? 最佳答案 最佳解释===例子 : // by writing '{ id:
根据save bang your head, active record will drive you mad ,在特殊情况下我们应该避免使用 save! 和 rescue 习惯用法。鉴于此,假设模型
我的菜单栏中有两个按钮,其中包含“保存”和“另存为”按钮。但是,我目前拥有它们相同的代码,并且它会按当前方式保存,并提示用户要保存在哪里。我希望保存按钮仅保存而不提示对话框,除非文件尚不存在。 我尝试
我知道 models.Model 和 forms.ModelForm 都包含您可以覆盖的 .save() 方法。我的问题是它们如何以及何时用于保存对象以及以什么顺序。 最佳答案 ModelForm.s
我一直在尝试使用 freeze_graph函数来获取模型+权重/偏差,但在这个过程中,我发现我的初始网络似乎没有任何变量,尽管能够正确分类图像。我的代码如下: #!/usr/bin/python im
尝试使用 gTTS 模块将文本转换为语音并另存为 wav 文件。 我的代码: import gTTS text = "This is my text in the saving folder" tts
我有一个包含大约 50 个字段和两个提交按钮的表单,“保存”和“保存并提交”。如果用户单击“保存”,则插入用户在表格中填写的值。当用户单击“保存并提交”按钮时,它应该更新或插入用户在表单中填写的所有字
我是 Django 新手。我想知道 django 中的 ModelForm 和 Model 如何协同工作?我的意思是 ModelForm.save() 如何自动保存与之关联的模型?它如何从 reque
我有亲子关系: @Entity @Table(name = "user") public final class User { @Id @GeneratedValue(strategy
我是一名优秀的程序员,十分优秀!