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

View File

@ -1,8 +1,15 @@
from django import forms from django import forms
from .models import Post, CustomUser from .models import Post, CustomUser
from taggit.forms import *
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
class PostForm(forms.ModelForm): class PostForm(forms.ModelForm):
published_date = forms.DateField(widget=forms.widgets.DateInput(format="%d. %h %Y, %M:%S"))
class Meta: class Meta:
model = Post 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']

View File

@ -4,8 +4,8 @@ from django.utils import timezone
from taggit.managers import TaggableManager from taggit.managers import TaggableManager
class CustomUser(models.Model): class CustomUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE) user = models.OneToOneField(User, null = True, on_delete=models.CASCADE)
mytags = TaggableManager() tags = TaggableManager()
class Post(models.Model): class Post(models.Model):

View File

@ -10,4 +10,10 @@
<table class="table table-striped table-bordered table-hover"> <table class="table table-striped table-bordered table-hover">
</table> </table>
</div> </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 %} {% endblock %}

View File

@ -1,7 +1,7 @@
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render, get_object_or_404
from django.utils import timezone from django.utils import timezone
from .models import Post from .models import Post, CustomUser
from .forms import PostForm from .forms import PostForm, NewTagForm
from django.shortcuts import redirect from django.shortcuts import redirect
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.admin.views.decorators import staff_member_required from django.contrib.admin.views.decorators import staff_member_required
@ -111,12 +111,24 @@ def post_remove(request, pk):
@login_required @login_required
def student_page(request): def student_page(request):
q = request.GET.get('q') user_instance = CustomUser.objects.get(user=request.user)
query = Q() if request.method == "POST":
for word in q or []: form = NewTagForm(request.POST, instance=user_instance)
query = query | Q(tags__name__icontains=word) if form.is_valid():
result = Post.objects.filter(query) obj = form.save(commit=False)
return render(request, 'blog_search_list_view.html', {'result':result}) 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): class TagSearch(TagCanvasListView):