私はDjangoを初めて使っています。これまでのところ基本的なことが分かっていますが、私が学んだチュートリアルが私に教えてくれなかったことをやろうとしています。基本的に私がしたいことは、私はdelegates_num
と呼ばれるフィールドを自分のmodels.pyに持っており、そのフィールドは特定のコースにサインアップするデリゲートの数のカウンターです。特定のコースにサインアップするたびにそのフィールドを1ずつ増やすことができます。コースは[ITIL, Change Management, Management of Risk, Programme Management, PRINCE2]
models.pyの値をインクリメントして、ウェブサイトはそれに応じて動作します
です。たとえば、ユーザーがITILコースを予約すると、そのコースのカウンターは1.各コースはそうのようなものを言うどこかの条件を15のスペースの制限があります:
if course.name = 'ITIL' && if delegates_num > 15
redirect user to 'course is full page'
else submit registration form and increment delegates_num by 1
私は任意の助けのために非常に感謝される、ここでのコードは、これまでのところです:
class Course(models.Model):
MY_CHOICES = (
('Open', 'Open'),
('Closed', 'Closed'),
('Fully Booked', 'Fully Booked'),
)
course_name = models.CharField(max_length=40)
course_code = models.CharField(max_length=40)
price = models.CharField(max_length=40, default='add price')
topic_details = models.TextField(max_length=200)
start_date = models.DateField('start date')
end_date = models.DateField('end date')
status = models.CharField(max_length=20, choices=MY_CHOICES)
venue = models.ForeignKey(Venue, on_delete=models.CASCADE)
room = models.CharField(max_length=20)
delegates_num=models.IntegerField()
def add_delegate(self):
#for count, thing in enumerate(args):
self.delegates_num+=1
def __str__(self):
return self.course_name
モデル。 py
<h1>Registration</h1>
<form method="POST" class="post-form">{% csrf_token %}
{{ form.as_p }}
{% if course.course_name = 'ITIL' %}
{{ course.delegates_num|inc }}
{% if course.delegates_num > 15 %}
<meta http-equiv="refresh" content="1;url=http://example.com">
<script type="text/javascript">
window.location.href = "https://yr4-group-project-mfblack.c9users.io/sorry_full/"
</script>
{% endif %}
{% endif %}
<button type="submit" class="save btn btn-default">Save</button>
</form>
book_course.html
def book_course(request):
if request.method == "POST":
form = StudentForm(request.POST)
if form.is_valid():
student = form.save(commit=False)
student.save()
student.course.add_delegate()
return redirect('registration_complete')
else:
form = StudentForm()
return render(request, 'website/book_course.html', {'form': form})
views.py
ことでそれを私のmodels.pyに追加すると、ユーザーがコースを予約するたびに自動的にこのフィールドが増えます。 – Huzzah
@HassnIrshaad - いいえ、これでフィールドの必要はなくなりましたが、あなたは '{{course.delegates_num}}'のテンプレートで同じ方法で値にアクセスすることができます – Sayse
これをどのように増やしますか私のコードで1の値ですか?同じ方法? – Huzzah