adding new tags from student_page to backend

This commit is contained in:
Esther Kleinhenz 2018-08-31 15:43:06 +02:00
parent 8ae45354f0
commit 5a30a0adea
4 changed files with 37 additions and 12 deletions

@ -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')
fields = ('title', 'text', 'published_date', 'tags')
class NewTagForm(forms.ModelForm):
m_tags = TagField()
class Meta:
model = CustomUser
fields = ['m_tags']

@ -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):

@ -10,4 +10,10 @@
<table class="table table-striped table-bordered table-hover">
</table>
</div>
<form class="post-form" method="post">
{% csrf_token %}
{{form.as_p}}
<button type="submit" class="save btn btn-outline-dark">Save</button>
</form>
{% endblock %}

@ -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):