![](/img/trans.png)
[英]How to call specific fields from models.py in the views.py in Django
[英]How to call custom functions from models.py django
我正在构建一个自定义函数来从mongodb
提取数据,并希望在操作之前查看数据的外观。
说我有一个函数可以从mongodb
请求数据
这是我的 models.py 的样子
from bson import json_util
from django.db import models
from django.http import JsonResponse
from pymongo import MongoClient
from bson.json_util import dumps
from bson.json_util import loads
import json
import pymongo
def data_pull(request):
request_data = request.POST.get('Hello', None)
if __name__ == "__main__":
data_pull(request)
要运行 models.py 我从命令行执行python models.py
但收到此错误
NameError:未定义名称“请求”
所以基本上我想从models.py测试这个data_pull
函数,看看数据是什么样的。 如何将此request
调用request
给函数并查看命令行的输出?
这部分代码看起来很奇怪:
if __name__ == "__main__":
data_pull(request)
通常,如果您将request
作为参数传递,您将从视图中调用函数data_pull()
并在函数调用中将请求作为参数传递。
您不能只使用if __name__ == "__main__":
并期望出现一个请求对象,您需要自己创建一个或使用由视图创建的请求对象(django 引擎在大多数情况下会处理 if) .
文档中的更多信息: https : //docs.djangoproject.com/en/3.2/ref/request-response/#quick-overview
编辑:如果你想要一个HttpRequest
对象,那通常意味着你想要从网络浏览器发送的数据(django 引擎放置在request.GET
和request.POST
等中的数据)。 这意味着您可能应该从视图中调用函数data_pull()
。
例如,您的“视图”文件中的此代码(来自https://docs.djangoproject.com/en/3.2/topics/class-based-views/intro/#using-class-based-views 的代码):
from django.http import HttpResponse
from django.views import View
# since you function is declared in 'models', we import it here
from .models import data_pull
class MyView(View):
def get(self, request):
# call the function passing request as argument
data_pull(request)
return HttpResponse('result')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.