[英]Checking previous SMS senders Django/Twilio
我試圖跟蹤向“ Twilio”應用程序發送“密碼”的用戶的答案,以便他們回答一系列問題。 首先,最好檢查數據庫中是否存在“ from_number”,如果不存在則創建一個新的Caller。
在models.py中:
class Callers(models.Model):
body = models.CharField()
from_number = models.CharField()
last_question = models.CharField(max_length=1, default="0")
在views.py中:
def HelloThere(request):
body = request.REQUEST.get('Body', None)
from_number = request.REQUEST.get("From",None)
if Caller.objects.filter(from_number == from_number):
if last_question == "0":
caller = Caller(message = "first question". last_question = "1")
caller.save()
return HttpResponse(str(resp))
if last_question == '1':
# so on and so forth
else:
caller = Caller(body=body, from_number=from_number, last_question='0')
caller.save()
message = "What is the password?"
我認為我不能使用request.user.is_authenticated()。
/擁有這么多相同的字段名是一個壞主意嗎? “身體=身體=身體?
首先關於模型:
class Callers(models.Model):
body = models.CharField()
from_number = models.CharField()
last_question = models.IntegerField(default=0) # if you have more than 10 question then I guess using IntegerField is better here
然后查看:
def hello_there(request): # this is a function, so use lower case with underscore for name
body = request.REQUEST.get('Body', None)
from_number = request.REQUEST.get("From",None)
try:
caller = Caller.objects.get(from_number=from_number) # using get() is better than filter here since I guess you want unique caller field in DB, right?
except Caller.DoesNotExist:
caller = None
if caller:
if caller.last_question == 0:
# update the caller ?
caller.last_question = 1
caller.body = 'Something'
caller.save()
# ... your code ...
return HttpResponse(str(resp))
if last_question == 1:
# so on and so forth
# if you have repeated process here, make a function to update caller to be DRY
else:
new_caller = Caller(body=body, from_number=from_number, last_question=0)
new_caller.save()
message = "What is the password?"
request.user.is_authenticated()
僅用於User
模型,因此您不能使用它。 可以將相同的名稱用於不同的事物,例如視圖中的body
可以是變量或參數。 如果您不清楚,則可以選擇其他名稱。
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.