我正在研究一个基于django的带有rfid阅读器的锁定/访问系统。问题是,如果在等待读卡器检测标记时,我单击已显示模板上的链接,服务器将继续在后台等待卡。接下来,如果我返回access页面并重新加载reading函数,它会将该请求置于之前的请求之下。
如果使用基本的input()函数而不是mfrc522库中的reader.read_id()函数,也会出现此问题
import mfrc522
# ... other imports
# main access view
def access_result(request):
reader = mfrc522.SimpleMFRC522()
# CRITICAL PART
card_id = reader.read_id()
try:
if RFIDCard.objects.get(card_id=card_id):
card = RFIDCard.objects.get(card_id=card_id)
if card.remaining_accesses > 0 and card.expiration_date >= datetime.date.today():
card.remaining_accesses -= 1
# ... some other lines of code (not relevant)
except RFIDCard.DoesNotExist:
message = 'Card not registered'
description = 'It seems that we haven\'t registered this card. ' \
'Please ask for help at the reception'
return render(request, 'rfid/access_result.html', {
'message': message,
'description': description
})
如果用户在阅读之前(和阅读期间)点击页面的链接,我想中断阅读。有没有一个简单的方法可以做到这一点?