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