def add_page(request, category_name_slug): try: category = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: category = None form = PageForm() if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): if category: page = form.save(commit=False) page.category = category page.views = 0 page.save() return show_category(request, category_name_slug) else: print(form.errors) context_dict = {'form': form, 'category': category} return render(request, 'rango/add_page.html', context_dict)
def add_page(request): if request.method == 'POST': form = CategoryForm(request.POST) if form.is_valid(): form.save(commit=True) return index(request) else: print(form.errors) else: form = PageForm() return render(request, 'rango/add_page.html', {'form': form})
def add_page(request, category_name_url): context = RequestContext(request) cat_list = get_category_list() context_dict = {} context_dict['cat_list'] = cat_list category_name = decode_url(category_name_url) if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): # This time we cannot commit straight away. # Not all fields are automatically populated! page = form.save(commit=False) # Retrieve the associated Category object so we can add it. try: cat = Category.objects.get(name=category_name) page.category = cat except Category.DoesNotExist: return render_to_response('rango/add_page.html', context_dict, context) # Also, create a default value for the number of views. page.views = 0 # With this, we can then save our new model instance. page.save() # Now that the page is saved, display the category instead. return category(request, category_name_url) else: print form.errors else: form = PageForm() context_dict['category_name_url'] = category_name_url context_dict['category_name'] = category_name context_dict['form'] = form return render_to_response('rango/add_page.html', context_dict, context)
def add_page(request, category_name_url): context = RequestContext(request) category_name = category_name_url.replace('_', ' ') if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): # This time we cannot commit straight away. # Not all fields are automatically populated! page = form.save(commit=False) # Retrieve the associated Category object so we can add it. # Wrap the code in a try block - check if the category actually exists! try: cat = Category.objects.get(name=category_name) page.category = cat except Category.DoesNotExist: # If we get here, the category does not exist. # Go back and render the add category form as a way of saying the category does not exist. return render_to_response('rango/add_category.html', {}, context) # Also, create a default value for the number of views. page.views = 0 # With this, we can then save our new model instance. page.save() # Now that the page is saved, display the category instead. return category(request, category_name_url) else: print form.errors else: form = PageForm() return render_to_response( 'rango/add_page.html', { 'category_name_url': category_name_url, 'category_name': category_name, 'form': form }, context)
def add_page(request, category_name_url): context = RequestContext(request) category_name = decode_URL(category_name_url) # A HTTP POST? if request.method == 'POST': form = PageForm(request.POST) # Have we been provided with a valid form? if form.is_valid(): # save the new category to the database page = form.save(commit=False) try: cat = Category.objects.get(name=category_name) page.category = cat except Category.DoesNotExist: return render_to_response('rango/add_category.html', {}, context) page.views = 0 page.save() # return to the category page return category(request, category_name_url) else: # the form had errors print form.errors else: # if it was not a POST, display the form form = PageForm() # bad form, no form # render the form with error messages return render_to_response( 'rango/add_page.html', { 'category_name_url': category_name_url, 'category_name': category_name, 'form': form }, context)
def add_page(request, category_name_slug): try: category = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: category = None form = PageForm() if request.method == "POST": form = PageForm(request.POST) if form.is_valid(): if category: page = form.save(commit=False) page.category = category page.views = 0 cat = page.save() print("Page %s has been added." % cat) return show_category(request, category_name_slug) else: print(form.errors) context_dict = {"form":form, "category":category} return render(request, "rango/add_page.html", context_dict)
def add_page(request, category_name_slug): context_dict = {} form = PageForm() category = get_object_or_404(Category, slug=category_name_slug) if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): page = form.save(commit=False) page.category = category page.views = 0 page.save() return show_category(request, category_name_slug) else: print(form.errors) context_dict['category'] = category context_dict['form'] = form return render(request, 'rango/add_page.html', context_dict)
def get(self, request, category_name_slug): category = self.get_category(category_name_slug) if category is None: return redirect(reverse('rango:index')) form = PageForm() return render(request, 'rango/add_page.html', { 'form': form, 'category': category })
def add_page(request, category_name_slug): try: category = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: category = None form = PageForm() if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): if category: page = form.save(commit=False) page.category = category page.views = 0 page.save() return redirect( reverse('rango:show_category', kwargs={'category_name_slug': category_name_slug})) else: print(form.errors)
def add_page(request, category_name_slug): #5 try: cat = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: cat = None if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): if cat: page = form.save(commit=False) page.category = cat page.views = 0 page.save() return category(request, category_name_slug ) # probably better to use a redirect here. else: print(form.errors) else: form = PageForm() context_dict = {'form': form, 'category': cat} return render(request, 'rango/add_page.html', context_dict)
def get(self, request, category_name_slug): try: category = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: category = None if category is None: return redirect(reverse('rango:index')) form = PageForm() context_dict = {'form': form, 'category': category} return render(request, 'rango/add_page.html', context_dict)
def add_page(request, category_name_slug): try: category = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: category = None form = PageForm() if request.method == "POST": form = PageForm(request.POST) if form.is_valid(): if category: page = form.save(commit=False) page.category = category page.views = 0 page.save() return HttpResponseRedirect( reverse("rango:category", args=(category_name_slug, ))) else: print(form.errors) context_dict = {"form": form, "category": category} return render(request, "rango/add_page.html", context_dict)
def add_page(request, category_name_slug): form = PageForm() # page 模型 forms.Models try: category = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: category = None if request.method == 'GET': context_dict = {'form': form, 'category': category} return render(request, 'rango/add_page.html', context_dict) if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): if category: page = form.save(commit=False) page.category = category # 后台自动添加分类和 views page.views = 0 page.save() return HttpResponseRedirect(reverse('rango:all_pages')) else: # 表单提交有错误, 返回表单, 让用户重新填写提交 context_dict = {'form': form, 'category': category} return render(request, 'rango/add_page.html', context_dict)
def add_page(request, category_name_slug): try: c = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: c = None form = PageForm() if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): if c: p = form.save(commit=False) p.views = 0 p.category = c p.save() return show_category(request, category_name_slug) else: print(form.errors) return render(request, 'rango/add_page.html', { 'form': form, "category": c })
def add_page(request, category_name_slug): category_name_slug = slugify(category_name_slug) try: category = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: category = None form = PageForm() url = request.POST['url'] if str(url[1:19]) == 'http://omgili.com/': page = Page.objects.get_or_create(category=category, title=revreplace( request.POST['title']), url=url[1:-1], views=0) else: if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): page = form.save(commit=False) page.views = 0 page.url = url page.category = category page.save() return show_cat(request, category_name_slug) else: print(form.errors) context_dict = {'category': category, 'form': form} return render(request, 'rango/add_page.html', context_dict)
def add_page(request, category_name_slug): try: category = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: category = None form = PageForm() if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): if category: page = form.save(commit=False) page.category = category page.views = 0 page.save() # переход на страницу category.html после отправки данных через форму return show_category(request, category_name_slug) else: print(form.errors) # если данные через форму не отправляли, открывется страница add_page.html context_dict = {'form': form, 'category': category} return render(request, 'rango/add_page.html', context_dict)
def post(self, request, category_name_slug, context_dict, category): form = PageForm(request.POST) if form.is_valid(): page = form.save(commit=False) page.category = category page.views = 0 page.save() return redirect(reverse('rango:show_category', kwargs={'category_name_slug': category_name_slug})) else: print(form.errors) return render(request, 'rango/add_page.html', context=context_dict)
def add_page(request, category_name_slug): try: category = Category.objects.get(slug=category_name_slug) except: category = None if category is None: return redirect('/rango/') form = PageForm() if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): if category: page = form.save(commit=False) page.category = category page.views = 0 page.save() return redirect(reverse('rango:show_category', kwargs={'category_name_slug': category_name_slug})) else: print(form.errors) context_dict = {'form': form, 'category': category} return render(request, 'rango/add_page.html', context=context_dict)
def add_page(request, category_name_url): category_name = encode_url(category_name_url) if request.method == "POST": form = PageForm(request.POST) if form.is_valid(): page = form.save(commit=False) cat = Category.objects.get(name=category_name) page.category = cat page.views = 0 page.save() return category(request, category_name_url) else: print(form.errors) else: form = PageForm() return render( request, 'rango/add_page.html', { 'category_name_url': category_name_url, 'category_name': category_name, 'form': form })
def add_page(request, category_name_slug): try: cat = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: cat = None if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): if cat: # 取得form数据之后进行相关修改再保存 page = form.save(commit=False) page.category = cat page.views = 0 page.save() return category(request, category_name_slug) # 重定向,交给category页面 else: print(form.errors) else: form = PageForm() return render(request, 'rango/add_page.html/', {'cat': cat, 'form': form})
def add_page(request, category_name_slug): category = Category.objects.get(slug=category_name_slug) form = PageForm() # A http post? if request.method == 'POST': print("Post recieved.") form = PageForm(request.POST) # Check validity if form.is_valid(): print("Valid form.") page = form.save(commit=False) # Save to database page.category = category page.views = 0 page.save() return show_category(request, category_name_slug) else: print(form.errors) pages = Page.objects.filter(category=category) context_dict = {'form': form, 'category': category, 'pages': pages} return render(request, 'rango/add_page.html', context_dict)
def add_page(request, category_name_slug): try: cat = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: cat = None if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): if cat: page = form.save(commit=False) page.category = cat page.views = 0 page.save() return HttpResponseRedirect('/rango/') # vs. index(request) else: print form.errors else: form = PageForm() context_dict = {'form': form, 'category': cat, 'slug': category_name_slug} return render(request, 'rango/add_page.html/', context_dict)
def fifth_add_page(request, category_name_slug): #test_second_page context_dict = {} # A HTTP POST? try: category = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: category = None if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): if category: page = form.save(commit=False) #先不提交 page.category = category #设置category外键 page.views = 0 page.save() # 此时提交 return third_category(request, category_name_slug) else: print form.errors else: form = PageForm() context_dict['form'] = form context_dict['category'] = category return render(request, 'rango/fifth_add_page.html', context_dict)
def add_page(request, category_name_url): if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): page = form.save(commit=False) try: cat = Category.objects.get(name=category_name_url) page.category = category except Category.DoesNotExist: return render(request, 'rango/add_category.html', {}) page.views = 0 page.save() return category(request, category_name_url) else: print(form.errors) else: form = PageForm() return render( request, 'rango/add_page.html', { 'category_name_url': category_name_url, 'category_name': category_name, 'form': form })
def add_page(request, category_name_slug): """View that handles the form to add pages to category""" try: cat = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: cat = None if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): if cat: page = form.save(commit=False) page.category = cat page.views = 0 page.save() return category(request, category_name_slug) else: print form.errors else: form = PageForm() context_dict = {'form': form, 'category': cat} return render(request, 'rango/add_page.html', context_dict)
def add_page(request, category_name_url): context = RequestContext(request) if request.method == "POST": form = PageForm(request.POST) if form.is_valid(): page = form.save(commit=False) cat = Category.objects.get(name=category_name) page.category = cat page.views = 0 page.likes = 0 page.save() return category(request, category_name_url) else: print(form.errors) else: form = PageForm() return render_to_response('rango/add_page.html', { 'category_name_url': category_name_url, 'form': form }, context)
def test_page_form_class(self): """ Does the PageForm implementation exist, and does it contain the correct instance variables? """ # Check that we can import PageForm. import rango.forms self.assertTrue( 'PageForm' in dir(rango.forms), f"{FAILURE_HEADER}The class PageForm could not be found in Rango's forms.py module. Check you have created this class in the correct location, and try again.{FAILURE_FOOTER}" ) from rango.forms import PageForm page_form = PageForm() # Do you correctly link Page to PageForm? self.assertEqual( type(page_form.__dict__['instance']), Page, f"{FAILURE_HEADER}The PageForm does not link to the Page model. Have a look in the PageForm's nested Meta class for the model attribute.{FAILURE_FOOTER}" ) # Now check that all the required fields are present, and of the correct form field type. fields = page_form.fields expected_fields = { 'title': django_fields.CharField, 'url': django_fields.URLField, 'views': django_fields.IntegerField, } for expected_field_name in expected_fields: expected_field = expected_fields[expected_field_name] self.assertTrue( expected_field_name in fields.keys(), f"{FAILURE_HEADER}The field '{expected_field_name}' was not found in your PageForm implementation. Check you have all required fields, and try again.{FAILURE_FOOTER}" ) self.assertEqual( expected_field, type(fields[expected_field_name]), f"{FAILURE_HEADER}The field '{expected_field_name}' in PageForm was not of the expected type '{type(fields[expected_field_name])}'.{FAILURE_FOOTER}" )
def add_page(request): # A HTTP POST? if request.method == 'POST': form = PageForm(request.POST) # Have we been provided with a valid form? if form.is_valid(): # Save the new category to the database. form.save(commit=True) # Now call the index() view. # The user will be shown the homepage. return index(request) else: # The supplied form contained errors - just print them to the terminal. print form.errors else: # If the request was not a POST, display the form to enter details. form = PageForm() # Bad form (or form details), no form supplied... # Render the form with error messages (if any). return render(request, 'rango/add_page.html', {'form': form})
def add_page(request, category_name_slug): try: category = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: category = None # Can't add a page to a category that doesn't exist if category is None: return redirect(reverse('rango:index')) form = PageForm() # A HTTP POST? if request.method == 'POST': form = PageForm(request.POST) # Have we been provided with a valid form? if form.is_valid(): if category: # Save the page to the database. page = form.save(commit=False) page.category = category page.views = 0 page.save() # Now that the page is saved, we could confirm this. # For now just redirect the user back to the index view. return redirect( reverse('rango:show_category', kwargs={'category_name_slug': category_name_slug})) else: # The supplied form contains errors - just print them to the terminal. print(form.errors) # Will handle the bad form, new form, or no form supplied cases. # Render the form with error messages (if any). context_dict = {'form': form, 'category': category} return render(request, 'rango/add_page.html', context=context_dict)
def add_page(request, category_name_slug): try: # Get category slug category = Category.objects.get(slug=category_name_slug) except Category.DoesNotExist: # Set to None if not exist category = None form = PageForm() # POST Request if request.method == 'POST': form = PageForm(request.POST) # If form is valid and category isn't empty, save form then return template if form.is_valid(): if category: print(category, '- Category from add_page') page = form.save(commit=False) page.category = category page.views = 0 page.save() request.method = 'GET' return redirect('/rango/category/'+category_name_slug) else: # Return form erors print(form.errors) # Init context to be passed in the template context_dict = { 'form': form, 'category': category } return render(request, 'rango/add_page.html', context_dict)