Hi --
 
I'm working on a personal project, and have been stuck on this problem for 
a bit of time.  There don't seem to be examples out there for editing 
tables with data. Is this right? Am I looking in the right places?  I'm 
still pretty new at Django, and learning largely on my own. 

I have  a template wherein people can sign up for meal shifts at Burning 
Man. It doesn't use a form, because the table is populated with data, but 
until someone signs up for a shift, "camper" is set to None.  The page is 
rendering and displaying data correctly, but when I go to add myself as a 
logged in user, I get the following error:

DoesNotExist at /signup/

mealShifts matching query does not exist.


Code is below. Thanks for any help.  


Signup is the name of the template and the view function.  mealShifts 
(which I know needs to be capitalized) is the name of the model. 

Here's the view:

def signup_for_shift(shift_id, camper):
    shift = mealShifts.objects.get(pk=shift_id)
    if shift.camper is not None:
        raise ValueError

    shift.camper = camper
    shift.save()



@login_required(login_url='login.html')
def signup(request):
    model = mealShifts
    user = request.user
    poss_shifts = mealShifts.objects.all().order_by('day')
    day_choices = range(0, 6)
    meal_choices = ['Breakfast', 'Dinner']
    shift_choices = ['Chef', 'Sous_Chef', 'KP']
    username = None
    

    sundayShiftsAvail = mealShifts.objects.filter(day=0, assigned=False)
    sundayShiftsTaken = mealShifts.objects.filter(day=0, assigned=True)

    mondayShiftsAvail = mealShifts.objects.filter(day=1, assigned=False)
    mondayShiftsTaken = mealShifts.objects.filter(day=1, assigned=True)

    tuesdayShiftsAvail = mealShifts.objects.filter(day=2, assigned=True)
    tuesdayShiftsTaken = mealShifts.objects.filter(day=2, assigned=True)

    wednesdayShiftsAvail = mealShifts.objects.filter(day=3, assigned=False)
    wednesdayShiftsTaken = mealShifts.objects.filter(day=3, assigned=True)

    thursdayShiftsAvail = mealShifts.objects.filter(day=4, assigned=False)
    thursdayShiftsTaken = mealShifts.objects.filter(day=4, assigned=True)

    fridayShiftsAvail = mealShifts.objects.filter(day=5, assigned=False)
    fridayShiftsTaken = mealShifts.objects.filter(day=5, assigned=True)

    saturdayShiftsAvail = mealShifts.objects.filter(day=6, assigned=False)
    saturdayShiftsTaken = mealShifts.objects.filter(day=6, assigned=True)

    saturdayShiftsAvail = mealShifts.objects.filter(day=7, assigned=False)
    saturdayShiftsTaken = mealShifts.objects.filter(day=7, assigned=True)
    
    if request.method == 'POST':
        shift_id = request.POST.get('shift_id')
        signup_for_shift(shift_id, request.user)
        return redirect('signup')

    context = RequestContext(request)
    return render_to_response('signup.html', 
        RequestContext(request, {
                'username':username, 'poss_shifts':poss_shifts,
                'sundayShiftsAvail':sundayShiftsAvail, 
'sundayShiftsTaken':sundayShiftsTaken,  
                'mondayShiftsTaken':mondayShiftsTaken, 
'mondayShiftsAvail':mondayShiftsAvail,  
                'tuesdayShiftsTaken':tuesdayShiftsTaken, 
'tuesdayShiftsAvail':tuesdayShiftsAvail,  
                'wednesdayShiftsTaken':wednesdayShiftsTaken, 
'wednesdayShiftsAvail':wednesdayShiftsAvail, 
                'thursdayShiftsTaken':thursdayShiftsTaken, 
'thursdayShiftsAvail':thursdayShiftsAvail,  
                'fridayShiftsTaken':fridayShiftsTaken, 
'fridayShiftsAvail':fridayShiftsAvail,  
                'saturdayShiftsTaken':saturdayShiftsTaken, 
'saturdayShiftsAvail':saturdayShiftsAvail
                },))



Here is my model:


class mealShifts(models.Model):
Sunday = "Sunday"
Monday = "Monday"
Tuesday = "Tuesday"
Wednesday = "Wednesday"
Thursday = "Thursday"
Friday = "Friday"
Days = (
(0, "Sunday"),
(1, "Monday"),
(2, "Tuesday"),
(3, "Wednesday"),
(4, "Thursday"),
(5, "Friday"),
(6, "Saturday"),
)
Breakfast = "Breakfast"
Dinner = "Dinner"
Meals = (
(Breakfast, "Breakfast"),
(Dinner, "Dinner"),
)
Chef = "Chef"
Sous_Chef = "Sous-Chef"
KP ="KP"
Shifts = (
(Chef, "Chef"),
(Sous_Chef, "Sous_Chef"),
(KP, "KP"),
)
assigned = models.BooleanField(default=False)
day = models.IntegerField(choices=Days)
meal = models.CharField(max_length = 10, choices=Meals)
shift = models.CharField(max_length = 10, choices=Shifts, default=KP)
camper = models.ForeignKey(User, null=True, blank=True, default=None)

class Meta:
unique_together = ("day", "meal", "shift")

def __str__(self):
return '%s %s %s %s %s %s'%(self.id, self.assigned, self.day, self.meal, 
self.shift, self.camper)


And my template:

<div class="tablewrap">
<table class="gradienttable"> 
<thead>
<tr>
<th><p>Day</p></th>
<th><p>Meal</p></th>
<th><p>Shift</p></th>
<th><p>Camper</p></th>
<th><p>Camper</p></th>
</tr>
</thead>

<div class="datatables" id="shiftsTaken">
{% for shift in sundayShiftsTaken %}
<tr class="datarow hideTable">
<td>Sunday</td>
<td>{{shift.meal}}</td>
<td>{{shift.shift}}</td>
<td>{{shift.camper}}</td>
</tr>
{% endfor %}
{% for shifts in mondayShiftsTaken %}
<tr class="datarow hideTable">
<td>Monday</td>
<td>{{shifts.meal}}</td>
<td>{{shifts.shift}}</td>
<td>{{shifts.camper}}</td>
</tr>
{% endfor %}
{% for shifts in tuesdayShiftsTaken %}
<tr class="datarow hideTable">
<td>Tuesday</td>
<td>{{shifts.meal}}</td>
<td>{{shifts.shift}}</td>
<td>{{shifts.camper}}</td>
</tr>
{% endfor %}
{% for shifts in wednesdayShiftsTaken %}
<tr class="datarow hideTable">
<td>Wednesday</td>
<td>{{shifts.meal}}</td>
<td>{{shifts.shift}}</td>
<td>{{shifts.camper}}</td>
</tr>
{% endfor %}
{% for shifts in thursdayShiftsTaken %}
<tr class="datarow hideTable">
<td>Thursday</td>
<td>{{shifts.meal}}</td>
<td>{{shifts.shift}}</td>
<td>{{shifts.camper}}</td>
</tr>
{% endfor %}
</div>

<div class="showTable datatables" id="shiftsAvailable">
{% for shift in sundayShiftsAvail %}
<tr class="datarow showTable">
<td>Sunday</td>
<td>{{shift.meal}}</td>
<td>{{shift.shift}}</td>
<td>{{shift.camper}}</td>
<td>
<form method="post">    
{% csrf_token %}
<div class="hiddentext">
{{shift.meal}}
{{shift.meal}}
{{shift.camper}}
</div>
<input type="submit" value="sign up">
</form>
</td>
</tr>
{% endfor %}
{% for shifts in mondayShiftsAvail %}
<tr class="datarow showTable">
<td>Monday</td>
<td>{{shifts.meal}}</td>
<td>{{shifts.shift}}</td>
<td>{{shifts.camper}}</td>
<td>
<form method="post">    
{% csrf_token %}
<div class="hiddentext">
{{shift.meal}}
{{shift.meal}}
{{shift.camper}}
</div>
<input type="submit" value="sign up">
</form>
</td>
</tr>
{% endfor %}
{% for shifts in tuesdayShiftsAvail %}
<tr class="datarow showTable">
<td>Tuesday</td>
<td>{{shifts.meal}}</td>
<td>{{shifts.shift}}</td>
<td>{{shifts.camper}}</td>
<td>
<form method="post">    
{% csrf_token %}
<div class="hiddentext">
{{shift.meal}}
{{shift.meal}}
{{shift.camper}}
</div>
<input type="submit" value="sign up">
</form>
</td>
</tr>
{% endfor %}
{% for shifts in wednesdayShiftsAvail %}
<tr class="datarow showTable">
<td>Wednesday</td>
<td>{{shifts.meal}}</td>
<td>{{shifts.shift}}</td>
<td>{{shifts.camper}}</td>
<td>
<form method="post">    
{% csrf_token %}
<div class="hiddentext">
{{shift.meal}}
{{shift.meal}}
{{shift.camper}}
</div>
<input type="submit" value="sign up">
</form>
</td>
</tr>
{% endfor %}
{% for shifts in thursdayShiftsAvail %}
<tr class="datarow showTable">
<td>Wednesday</td>
<td>{{shifts.meal}}</td>
<td>{{shifts.shift}}</td>
<td>{{shifts.camper}}</td>
<td>
<form method="post">    
{% csrf_token %}
<div class="hiddentext">
{{shift.meal}}
{{shift.meal}}
{{shift.camper}}
</div>
<input type="submit" value="sign up">
</form>
</td>
</tr>
{% endfor %}
{% for shifts in fridayShiftsAvail %}
<tr class="datarow showTable">
<td>Wednesday</td>
<td>{{shifts.meal}}</td>
<td>{{shifts.shift}}</td>
<td>{{shifts.camper}}</td>
<td>
<form method="post">    
{% csrf_token %}
<div class="hiddentext">
{{shift.meal}}
{{shift.meal}}
{{shift.camper}}
</div>
<input type="submit" value="sign up">
</form>
</td>
</tr>
{% endfor %}
{% for shifts in saturdayShiftsAvail %}
<tr class="datarow showTable">
<td>Wednesday</td>
<td>{{shifts.meal}}</td>
<td>{{shifts.shift}}</td>
<td>{{shifts.camper}}</td>
<td>
<form method="post">    
{% csrf_token %}
<div class="hiddentext">
{{shift.meal}}
{{shift.meal}}
{{shift.camper}}
</div>
<input type="submit" value="sign up">
</form>
</td>
</tr>
{% endfor %}
</div>


-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/af844fb2-a1e9-4fe9-97a5-fd61e1b7ae7b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to