From 5a30a0adea9e6452e8d23558858d76a337729f01 Mon Sep 17 00:00:00 2001 From: Esther Kleinhenz Date: Fri, 31 Aug 2018 15:43:06 +0200 Subject: [PATCH] adding new tags from student_page to backend --- application/forms.py | 11 ++++++++-- application/models.py | 4 ++-- application/templates/student_page.html | 6 ++++++ application/views.py | 28 ++++++++++++++++++------- 4 files changed, 37 insertions(+), 12 deletions(-) diff --git a/application/forms.py b/application/forms.py index 38e6cf0..54503d9 100644 --- a/application/forms.py +++ b/application/forms.py @@ -1,8 +1,15 @@ from django import forms from .models import Post, CustomUser +from taggit.forms import * +from django.contrib.auth.forms import UserCreationForm, UserChangeForm class PostForm(forms.ModelForm): - published_date = forms.DateField(widget=forms.widgets.DateInput(format="%d. %h %Y, %M:%S")) class Meta: model = Post - fields = ('title', 'text', 'published_date', 'tags') \ No newline at end of file + fields = ('title', 'text', 'published_date', 'tags') + +class NewTagForm(forms.ModelForm): + m_tags = TagField() + class Meta: + model = CustomUser + fields = ['m_tags'] diff --git a/application/models.py b/application/models.py index 7276bfc..c447e8c 100644 --- a/application/models.py +++ b/application/models.py @@ -4,8 +4,8 @@ from django.utils import timezone from taggit.managers import TaggableManager class CustomUser(models.Model): - user = models.OneToOneField(User, on_delete=models.CASCADE) - mytags = TaggableManager() + user = models.OneToOneField(User, null = True, on_delete=models.CASCADE) + tags = TaggableManager() class Post(models.Model): diff --git a/application/templates/student_page.html b/application/templates/student_page.html index d98c169..2f5fab9 100644 --- a/application/templates/student_page.html +++ b/application/templates/student_page.html @@ -10,4 +10,10 @@
+ +
+ {% csrf_token %} + {{form.as_p}} + +
{% endblock %} \ No newline at end of file diff --git a/application/views.py b/application/views.py index 0b9dac6..acbe4f2 100644 --- a/application/views.py +++ b/application/views.py @@ -1,7 +1,7 @@ from django.shortcuts import render, get_object_or_404 from django.utils import timezone -from .models import Post -from .forms import PostForm +from .models import Post, CustomUser +from .forms import PostForm, NewTagForm from django.shortcuts import redirect from django.contrib.auth.decorators import login_required from django.contrib.admin.views.decorators import staff_member_required @@ -111,12 +111,24 @@ def post_remove(request, pk): @login_required def student_page(request): - q = request.GET.get('q') - query = Q() - for word in q or []: - query = query | Q(tags__name__icontains=word) - result = Post.objects.filter(query) - return render(request, 'blog_search_list_view.html', {'result':result}) + user_instance = CustomUser.objects.get(user=request.user) + if request.method == "POST": + form = NewTagForm(request.POST, instance=user_instance) + if form.is_valid(): + obj = form.save(commit=False) + obj.user = request.user + obj.save() + m_tags = form.cleaned_data['m_tags'] + obj.tags.add(*m_tags) + form.save_m2m() + return redirect('/student/') + + else: + form = NewTagForm() + + return render(request, 'student_page.html', {'form':form}) + + class TagSearch(TagCanvasListView):