Skip to main content

Using Modals to render forms

A student wanted to create several tables with foreign keys linking them. He was placing the forms all over the place and that just didn't seem to make sense to me. I suggested that he link all the forms to one main registration page, and while he worked on it, I came up with my own solution that I feel rather proud of. Though I'm well aware it is a very simple solution. 

views.py
def register(request):
# form for team
formteam = TeamForm(request.POST or None)
if formteam.is_valid():
formteam.save()
return redirect('registerForTeam')
else:
print(formteam.errors)
formteam = TeamForm()

# form for coach
formcoaches = CoachesForm(request.POST or None)
if formcoaches.is_valid():
formcoaches.save()
return redirect('registerForTeam')
else:
print(formcoaches.errors)
formcoaches = CoachesForm()

# form for player
formplayer = PlayersForm(request.POST or None)
if formplayer.is_valid():
formplayer.save()
return redirect('registerForTeam')
else:
print(formplayer.errors)
formplayer = PlayersForm()


context = {
'team': formteam,
'coach': formcoaches,
'player': formplayer
}
return render(request, 'SoccerApp/SoccerAppRegister.html', context)

I put all the forms in a single view function so that I can use modals to render the forms. I used Bootstrap to create the modals. I was stuck at this point for a shamefully long time, before I realised that Javascript was not added to the base template, and that was what was preventing me from rendering the modals. *facepalm* I'm not really pleased with the long view function and I'm sure there's probably a better way to do this. I'll look at it again at some point and try and figure it out. I haven't really tried using class based views and I wonder if that would make things more readable? I'm putting that on my to do list. 

Comments

Popular posts from this blog

Deviants in a normal world

It's definitely been a bit since I've seen this graphy. Anyone who has learnt about standard deviation knows this graph. Standard Deviation Standard deviation shows us how spread out all the values in a set are from the mean. The higher the standard deviation, the more spread out the values are over a wider range and the flatter this curve. In a normal distribution, most values are within 1 standard deviation from the mean(the green part of the graph). Apparently NumPy can calculate standard deviation too! import numpy numSet = [ *lots of numbers* ] numSetStdDev = numpy.std(numSet) Variance The variance also indicates how spread out the values in a set are. It measures the average degree to which each value differs from the mean. variance = standard deviation ^2 import numpy numSet = [ *lots of numbers * ] numSetVar = numpy.var(numSet) Source:  https://www.w3schools.com/python/python_ml_standard_deviation.asp

Fizzbuzz

I was today years old when I found out what fizzbuzz was. Yes, I'm late to the party. I was in an interview where the interviewer mentioned that ordinarily they would ask interviewees in for a round of fizzbuzz challenges, as I know. Actually sir, no, I don't know 👀 But he sounded so certain that I must surely know what it is that I was afraid to say anything so I did what I always do when I panic. Look right back saying not a word. I googled this mysterious fizzbuzz problem:  It looks pretty easy. I don't think he meant this actual problem, but problems like this. Because this problem is way too easy to be an actual problem someone asks in an interview. I decided to work on it for fun:  Yup. Super easy. I wish this is all I were asked in an interview 😄 

Snakes and ladders

I've started on my Python course. So far, the code has been familiar because the first few basic codes are similar to Javascript. And then modules happened. Confusion and despair! What is the world is 'if __name__ == "__main__": ' and why must I reach this section of my course on a public holiday when none of the instructors are in :( Stack overflow to the rescue, providing me a lifeline while I was drowning in a pit of serpents. I feel eternally indebted to a particular Mr Fooz.  Picture from  here From my understanding, when the Python interpreter reads a source file, it first sets the variable __name__ and then it executes all the code in the file. If that particular file that you are running(i.e. your module) is the main program, the interpreter will assign '__name__ = "__main__" '. Thereafter, any code in the aforementioned 'if' statement is run. If you have, instead, imported a module, the interpreter assigns '__name__ ...