问题描述
我正在尝试将数据从 Django 网页上传到 Firebase 实时数据库。但我收到错误:
'KeyError at /post_create/'localid'
到目前为止,我已经完成了 firebase 身份验证、登录凭据和注销凭据。但这是我卡住的数据上传部分。 这是我的代码: 视图.py
from django.shortcuts import render
from django.contrib import auth
import pyrebase
config={
'apiKey': "AIzaSyDWBmMMaF3YJO7ZxMXgbBRzqw7hqe564vc",'databaseURL': '','authDomain': "cpanel-103d6.firebaseapp.com",'projectId': "cpanel-103d6",'storageBucket': "cpanel-103d6.appspot.com",'messagingSenderId': "489072871004",'appId': "1:489072871004:web:fd717d9bd6d0a4007f4899"
}
firebase= pyrebase.initialize_app(config)
database= firebase.database()
authe =firebase.auth()
def postsign(request):
email= request.POST.get('email')
passw = request.POST.get('pass')
try:
user = authe.sign_in_with_email_and_password(email,passw)
except:
message = 'invalid credentials'
return render(request,'signin.html',{'messg': message})
print(user['idToken'])
session_id=user['idToken']
request.session['uid']=str(session_id)
return render(request,'welcome.html',{'e': email})
def create(request):
return render(request,'create.html')
def post_create(request):
import time
from datetime import datetime,timezone
import pytz
tz=pytz.timezone('Asia/Kolkata')
time_Now=datetime.Now(timezone.utc).astimezone(tz)
millis= int(time.mktime(time_Now.timetuple()))
print('mili'+str(millis))
work= request.POST.get('work')
progress= request.POST.get('progress')
idtoken=request.session['uid']
a= authe.get_account_info(idtoken)
a= a['users']
a= a[0]
a= a['localid']
print("info"+str(a))
data={"work":work,"progress": progress
}
database.child('users').child(a).child('reports').child('millis').set(data)
return render(request)
urls.py:
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('admin/',views.signin),path('postsign/',views.postsign),path('logout/',views.logout,name='log'),path('create/',views.create,name='create'),path('post_create/',views.post_create,name='post_create')
]
create.html:
<!DOCTYPE html>
<html lang="en">
<head>
<Meta charset="UTF-8">
</head>
<body>
<h1><b>Upload Documents Here</b></h1>
<form action="/post_create/" method="post">
{% csrf_token %}
Work Assigned: <input type = "text" name="work" required>
Progress:<textarea rows="10" cols="50" name="progress" required ></textarea>
<input type="submit" value="SUBMIT">
<br><br> <button type="button" onclick="location.href={% url 'log' %}"> logoUT </button>
</form>
</body>
</html>
为了创建这个项目,我参考了这个 youtube 视频。 https://www.youtube.com/watch?v=bq0AszeDZf4&t=53s
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)