![](/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.