2012-05-23 27 views
1

對於給定的用戶選擇的時間段(應該有時間,俱樂部,日期和法庭相關聯的時間段),我如何將類名爲「預留」字段的值存儲在「用戶名」字段中?如何根據django中的用戶輸入將值存儲在模型中?

def vote(request, club_id): 
    if 'username' in request.POST and request.POST['username'] and 'slot' in request.POST and request.POST['slot']: 
     username = request.POST['username'] 
     slot = request.POST['slot'] 
     #save the value stored in "username" to the "reservation" field in class Opening with the other associated data (club, time, day, court) 
     return HttpResponseRedirect('reserve/templates/booked.html',{'username':username, 'slot':slot}) 
    else: 
     return render_to_response('reserve/templates/vote.html', {'error': True}) 

Avail_times.html:

<form action="/clubs/{{ club.id }}/vote/" method="post"> 
{% csrf_token %} 
{{ today }}<br> 
{% for slot in open_slots %} 
    <input type="checkbox" name="slot" id="slot{{ forloop.counter }}" value="{{ slot.id }}" /> 
    <label for="slot{{ forloop.counter }}">{{ slot.slot }} on Court {{slot.court}}</label><br /> 
{% endfor %} 

<br> 
{{ tomorrow }}<br> 
{% for slot in tom_open_slots %} 
    <input type="checkbox" name="slot" id="slot{{ forloop.counter }}" value="{{ slot.id }}" /> 
    <label for="slot{{ forloop.counter }}">{{ slot.slot }} on Court {{slot.court}}</label><br /> 
{% endfor %}  
<input type="text" name="username" /> 
<input type="submit" value="Reserve" /> 

型號:

from django.db import models 
import datetime 

class Club(models.Model): 
    establishment = models.CharField(max_length=200) 
    address = models.CharField(max_length=200) 
    def __unicode__(self): 
     return self.establishment 

class Court(models.Model): 
    club = models.ForeignKey(Club) 
    day = models.ForeignKey(Day) 
    court = models.IntegerField(max_length=200) 
    def __unicode__(self): 
     return unicode(self.court) 

class Opening(models.Model): 
    club = models.ForeignKey(Club) 
    day = models.DateField('date') 
    court = models.ForeignKey(Court) 
    slot = models.TimeField('slot') 
    reservation = models.CharField(max_length=200) 
    def __unicode__(self): 
     return unicode(self.slot) 

回答

0

如果您想更新Opening模型,那麼你需要知道哪一個。

opening_id寫入表單中。我不確定你的插槽和開口是如何相關的,所以你必須弄清楚這一點。

我通常用get_object_or_404來獲得相關Opening

username = request.POST['username'] 
opening = get_object_or_404(Opening, id=request.POST['opening_id']) 
opening.reservation = username 
opening.save() 

你想也想檢查允許用戶更新開放。

相關問題