adding new tags from student_page to backend
This commit is contained in:
parent
8ae45354f0
commit
5a30a0adea
@ -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']
|
||||||
|
@ -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):
|
||||||
|
@ -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 %}
|
@ -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):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user