2017-05-29 61 views
0

數據庫: database 型號:Django的 - 按一下按鈕,保存在數據庫中創建日期

class Donor(models.Model): 
    firstName = models.CharField(max_length=50) 
    lastName = models.CharField(max_length=50) 
    bloodType = models.CharField(max_length=10) 
    createdDate = models.DateTimeField(auto_now_add=True) 
    lastAttendance = models.DateTimeField(auto_now_add=True) 

查看:

donor_id = None 
if request.method == "GET": 
    donor_id = request.GET['id'] 

if donor_id: 
    donor = Donor.objects.get(id=int(donor_id)) 
    if donor: 
     donor.createdDate = True 
     donor.save() 

錯誤消息:MultiValueDictKeyError在/供體/ 「」 id'「

問題: approach 點擊提示按鈕,取用戶的ID並保存在數據庫中的當前日期。 任何解決方案讚賞!

+0

你可以在你的url.py和相關的html代碼中加入那個'attend'按鈕嗎? –

+0

** **網址URL (R '^供體/ $',views.donors,名稱= '供體'), ** ** HTML ​​<形式行動= 「GET」> <按鈕類型= 「submit」class =「btn attendBtn」id =「{{item.id}}」name =「attend」>參加 – kasia

+0

您是否已將'item'對象傳遞給模板? –

回答

0

您需要在按鈕中添加值,以便您可以獲取GET參數的值。

<form action="get"> 
    <button 
    type="submit" 
    class="btn attendBtn" 
    value="{{ item.id }}" 
    name="attend">attend 
    </button> 
</form> 

通常在輸入按鈕中我們沒有指定值屬性,這是因爲用戶輸入了值並提交按鈕進行處理。但在你的情況下,我們需要明確聲明價值。

+0

是的,它的工作:http://127.0.0.1:8000/donors/get?attend=2 (2是一個id) 我只需要添加另一個參數與日期,所以它會保存當前日期 – kasia

+0

好吧。請接受這個答案。讓社區知道這個答案適合你。謝謝。 –

+0

謝謝拉惹! – kasia

0

嘗試

if request.method == "GET": 
    donor_id = request.GET.get('id') 

request.GET['key']將提高KeyError如果該鍵不存在。

request.GET.get('key', '')允許我們指定一個默認值,如果密鑰不可用。如果省略,則默認值爲''。因此,如果請求中沒有id,它不會引發錯誤。Get

0

使用MultiValueDict的get方法。這也存在於標準字典中,並且是一種在提供缺省值(如果不存在)的同時獲取值的方法。

donor_id = request.GET.get('id', False) 
Generally, 

my_var = dict.get(<key>, <default>)