私はこれをやろうとしています: 私の Web サイトには、次のようなデータベースからのデータがあります:
Math 140
Math 141
CS 320
CS 240
そして、私はこのようにしたいと思います: チェックボックスをオンにして削除を押すと、この件名はデータベースから削除されます。
Math 140 []
Math 141 []
CS 320 []
CS 240 []
template.html
<div id="subjects-list">
{% if user.username %}
<ul>
{% if subjects %}
{% for subject in subjects %}
<li>{{ subject.name }}
{% endfor %}
{% else %}
No Subjects for this user
{% endif %}
</ul>
{% else %}
You are in else
{% endif %}
</div>
models.py
class Subjects(models.Model):
""" Subject Database """
name = models.CharField(max_length=64, unique=False) #Subject Names on left-menu
user = models.ForeignKey(User, unique=False)
def __unicode__(self):
return '%s %s' %(self.name, self.user.username)
ビュー.py
@login_required
def user_page(request, username):
user = get_object_or_404(User, username=username)
''' Form in the left-menu to create a new subject '''
if 'subject-create-b' in request.POST:
subject_form = SubjectCreationForm(request.POST)
if subject_form.is_valid():
subject = Subjects.objects.get_or_create(name = subject_form.data['name'],
user = user)
return HttpResponseRedirect('.') # redirect to the same page
# later have to be substituted with AJAX
else:
subject_form = SubjectCreationForm()
# Filter Subjects table by currently logged in user
subjects = Subjects.objects.filter(user__exact = user)
return render_to_response('user_page.html',
{'subject_creation_form': subject_form,
'subjects': subjects,
'user': request.user,
},
context_instance=RequestContext(request))
だから私の質問は基本的にどうすればこれを行うことができますか?
新しいフォームを追加して、" の直後に配置する必要がありますか?
または、mymodels に新しい列を追加する必要がありますか。チェック ボックスがオンになっている場合は、この列を true に切り替えて、新しい列に true を持つすべての行をビューで削除します。
または、より良いテクニックを提案できるかもしれません。前もって感謝します!