def test_valid(self): params = { 'title': 'hello world', 'code': 'print("Hello World")', 'description': 'Just printing "Hello World"', } snippet = Snippet() form = SnippetForm(params, instance=snippet) self.assertTrue(form.is_valid())
def test_completed_form(self): """ Test a form with content """ data = { 'title': 'My snippet', 'content': 'This is my snippet' } form = SnippetForm(data) self.assertTrue(form.is_valid())
def create(request): if request.method == "GET": form = SnippetForm() elif request.method == "POST": form = SnippetForm(request.POST) if form.is_valid(): data = form.cleaned_data snippet = Snippet(title=data.get('title'), content=data.get('content')) snippet.save() return redirect('view',snippet.id) return render(request, 'snippets/create.html',{'form':form})
def post(self, request): snippet_form = SnippetForm(request.POST) if snippet_form.is_valid(): snippet = snippet_form.save() if request.user.is_authenticated(): snippet.user = request.user snippet.save() return HttpResponseRedirect(reverse('snippet_detail', kwargs={'id': snippet.id})) return TemplateResponse(request, 'snippets/new.html', {'snippet_form': snippet_form})
def post(self, request, id): try: snippet = request.user.snippets.get(id=id) except Snippet.DoesNotExist: raise Http404() snippet_form = SnippetForm(request.POST, instance=snippet) if snippet_form.is_valid(): snippet_form.save() return HttpResponseRedirect(reverse('snippet_detail', kwargs={'id': snippet.id})) return TemplateResponse(request, 'snippets/edit.html', {'snippet': snippet, 'snippet_form': snippet_form})
def create_snippet(request): """ paste code on this page """ if request.method == 'GET': form = SnippetForm() elif request.method == 'POST': form = SnippetForm(data=request.POST) if form.is_valid(): snip_post = form.save(commit=False) # return instates # code_list = list() # code = snip_post.code.split('\n') # for i, line in enumerate(code, 1): # this = f'{i}'.zfill(2) + ' ' + line # code_list.append(this) # # snip_post.code = '\n'.join(code_list) snip_post.save() # now save form.save_m2m() # send to display view (below) # using url related name return redirect('snippet_detail', pk=snip_post.id) lang = Language.objects.order_by('name') context = {'form': form, 'lang': lang} return render(request, 'create.html', context)
def edit( request, object_id ): # Normally the call comes from a view (list or detail) try: came_from = request.META['HTTP_REFERER'] except: came_from = False context = 'detail_edit' template = 'snippets/snippet_edit.html' # These basic data are expected in some templates data = { 'context' : context, 'user' : request.user, } from snippets.models import Snippet from snippets.forms import SnippetForm try: # If editing an object, the object should exist snippet = Snippet.objects.get( id = object_id ) except: # Otherwise we have no object, which is a valid state if adding one snippet = None # We prepair the form with the snippet ('None' or a valid object) form = SnippetForm( request.POST or None, instance = snippet ) if form.is_valid(): if not snippet: # A new snippet needs a new ID snippet = form.save( commit = False ) snippet = form.save() # The form is filled correctly and the call came from the edit view if form.is_valid() and came_from and came_from.endswith('/edit'): # so we return to the snippet details view return HttpResponseRedirect( snippet.GetAbsoluteUrl() ) # It seems to be neccessary to edit the snippet: We add the form to the data data.update({ 'form' : form, }) # and we forward the data (and potential error messages) to the edit form from django.template import RequestContext return render_to_response( template, data, context_instance = RequestContext(request) )
def snippets_list(request): snippets = Snippet.objects.all() forms = [] for snippet in snippets: forms.append(SnippetForm(instance=snippet)) return render(request, 'snippets/snippets_list.html', { 'snippets_list': snippets, 'snippets_forms': forms, })
def generate_snippet_and_gist_forms(request): # Gist UpdateForm or CreateForm possible_gist = Gist.objects.filter(title=request.POST.get("title", None), author=request.user.author) if possible_gist.exists(): gist_form = GistForm(data=request.POST, instance=possible_gist.first()) else: gist_form = GistForm(data=request.POST) # Snippet UpdateForm or CreateForm snippet_form = SnippetForm(data=request.POST) if possible_gist.exists(): possible_snippet = Snippet.objects.filter(file_name=request.POST.get( "file_name", None), gist=possible_gist.first()) if possible_snippet.exists(): snippet_form = SnippetForm(data=request.POST, instance=possible_snippet.first()) return snippet_form, gist_form
def edit_snippet(request, snippet_id): snippet = get_object_or_404(Snippet, pk=snippet_id) if request.method == "POST": form = SnippetForm(request.POST, instance=snippet) if form.is_valid(): form.save() messages.add_message(request, messages.SUCCESS, "スニペットを更新しました。") return redirect('snippet_detail', snippet_id=snippet_id) else: form = SnippetForm(instance=snippet) return render(request, 'snippets/snippet_edit.html', {'form': form})
def new_snippet(request): if request.method == 'POST': form = SnippetForm(request.POST) if form.is_valid(): snippet = form.save(commit=False) snippet.created_by = request.user snippet.save() return redirect(top) else: form = SnippetForm() return render(request, "snippets/snippet_new.html", {'form': form})
def snippet_change(request, pk): """ crud, update snippet """ s = Snippet.objects.get(id=pk) if request.method == 'GET': form = SnippetForm(instance=s) elif request.method == 'POST': form = SnippetForm(instance=s, data=request.POST) if form.is_valid(): update_snip = form.save(commit=False) update_snip.save() return redirect('snippet_detail', pk=update_snip.id) s_name = s.title context = {'form': form, 'name': s_name} return render(request, 'snippet_change.html', context)
def test_empty_form(self): """ Test a form with no content """ form = SnippetForm() self.assertFalse(form.is_valid())
def test_should_specify_title(self): params = {} snippet = Snippet() form = SnippetForm(params, instance=snippet) self.assertFalse(form.is_valid())