django.views.generic FormView Example Code (2024)

FormView is a class within the django.views.generic module of the Django project.

Example 1 from django-angular

django-angular(project examples website)is a library with helper code to make it easier to useAngular as the front-end to Django projects.The code for django-angular isopen source under the MIT license.

django-angular / djng / views / crud.py

# crud.pyimport jsonfrom django.core.exceptions import ValidationErrorfrom django.core import serializersfrom django.forms.models import modelform_factoryfrom django.views.generic import FormViewfrom djng.views.mixins import JSONBaseMixin, JSONResponseExceptionclass NgMissingParameterError(ValueError): passclass NgCRUDView(JSONBaseMixin, FormView): model = None fields = None form_class = None slug_field = 'slug' serializer_name = 'python' serialize_natural_keys = False allowed_methods = ['GET', 'POST', 'DELETE'] exclude_methods = [] def get_allowed_methods(self): return [method for method in self.allowed_methods if method not in self.exclude_methods] def dispatch(self, request, *args, **kwargs): allowed_methods = self.get_allowed_methods() try: if request.method == 'GET' and 'GET' in allowed_methods: if 'pk' in request.GET or self.slug_field in request.GET: return self.ng_get(request, *args, **kwargs) return self.ng_query(request, *args, **kwargs) elif request.method == 'POST' and 'POST' in allowed_methods: return self.ng_save(request, *args, **kwargs) elif request.method == 'DELETE' and 'DELETE' in allowed_methods: return self.ng_delete(request, *args, **kwargs)## ... source file continues with no further FormView examples...

Example 2 from django-haystack

django-haystack(project website andPyPI page)is a search abstraction layer that separates the Python search codein a Django web application from the search engineimplementation that it runs on, such asApache Solr,Elasticsearchor Whoosh.

The django-haystack project is open source under theBSD license.

django-haystack / haystack / generic_views.py

# generic_views.pyfrom django.conf import settingsfrom django.core.paginator import Paginatorfrom django.views.generic import FormViewfrom django.views.generic.edit import FormMixinfrom django.views.generic.list import MultipleObjectMixinfrom .forms import FacetedSearchForm, ModelSearchFormfrom .query import SearchQuerySetRESULTS_PER_PAGE = getattr(settings, "HAYSTACK_SEARCH_RESULTS_PER_PAGE", 20)class SearchMixin(MultipleObjectMixin, FormMixin): template_name = "search/search.html" load_all = True form_class = ModelSearchForm context_object_name = None paginate_by = RESULTS_PER_PAGE paginate_orphans = 0 paginator_class = Paginator page_kwarg = "page" form_name = "form" search_field = "q" object_list = None def get_queryset(self):## ... source file abbreviated to get to FormView examples ... return self.render_to_response(context)class FacetedSearchMixin(SearchMixin): form_class = FacetedSearchForm facet_fields = None def get_form_kwargs(self): kwargs = super(FacetedSearchMixin, self).get_form_kwargs() kwargs.update({"selected_facets": self.request.GET.getlist("selected_facets")}) return kwargs def get_context_data(self, **kwargs): context = super(FacetedSearchMixin, self).get_context_data(**kwargs) context.update({"facets": self.queryset.facet_counts()}) return context def get_queryset(self): qs = super(FacetedSearchMixin, self).get_queryset() for field in self.facet_fields: qs = qs.facet(field) return qsclass SearchView(SearchMixin, FormView): def get(self, request, *args, **kwargs): form_class = self.get_form_class() form = self.get_form(form_class) if form.is_valid(): return self.form_valid(form) else: return self.form_invalid(form)class FacetedSearchView(FacetedSearchMixin, SearchView): pass## ... source file continues with no further FormView examples...

Example 3 from django-oauth-toolkit

django-oauth-toolkit(project website andPyPI package information)is a code library for adding and handling OAuth2flows within your Django web application andAPI.

The django-oauth-toolkit project is open sourced under theFreeBSD licenseand it is maintained by the developer community groupJazzband.

django-oauth-toolkit / oauth2_provider / views / base.py

# base.pyimport jsonimport loggingimport urllib.parsefrom django.contrib.auth.mixins import LoginRequiredMixinfrom django.http import HttpResponse, JsonResponsefrom django.shortcuts import renderfrom django.urls import reversefrom django.utils import timezonefrom django.utils.decorators import method_decoratorfrom django.views.decorators.csrf import csrf_exemptfrom django.views.decorators.debug import sensitive_post_parametersfrom django.views.generic import FormView, Viewfrom ..exceptions import OAuthToolkitErrorfrom ..forms import AllowFormfrom ..http import OAuth2ResponseRedirectfrom ..models import get_access_token_model, get_application_modelfrom ..scopes import get_scopes_backendfrom ..settings import oauth2_settingsfrom ..signals import app_authorizedfrom .mixins import OAuthLibMixinlog = logging.getLogger("oauth2_provider")class BaseAuthorizationView(LoginRequiredMixin, OAuthLibMixin, View): def dispatch(self, request, *args, **kwargs): self.oauth2_data = {} return super().dispatch(request, *args, **kwargs) def error_response(self, error, application, **kwargs): redirect, error_response = super().error_response(error, **kwargs) if redirect: return self.redirect(error_response["url"], application) status = error_response["error"].status_code return self.render_to_response(error_response, status=status) def redirect(self, redirect_to, application): if application is None: allowed_schemes = oauth2_settings.ALLOWED_REDIRECT_URI_SCHEMES else: allowed_schemes = application.get_allowed_schemes() return OAuth2ResponseRedirect(redirect_to, allowed_schemes)RFC3339 = "%Y-%m-%dT%H:%M:%SZ"class AuthorizationView(BaseAuthorizationView, FormView): template_name = "oauth2_provider/authorize.html" form_class = AllowForm server_class = oauth2_settings.OAUTH2_SERVER_CLASS validator_class = oauth2_settings.OAUTH2_VALIDATOR_CLASS oauthlib_backend_class = oauth2_settings.OAUTH2_BACKEND_CLASS skip_authorization_completely = False def get_initial(self): scopes = self.oauth2_data.get("scope", self.oauth2_data.get("scopes", [])) initial_data = { "redirect_uri": self.oauth2_data.get("redirect_uri", None), "scope": " ".join(scopes), "client_id": self.oauth2_data.get("client_id", None), "state": self.oauth2_data.get("state", None), "response_type": self.oauth2_data.get("response_type", None), "code_challenge": self.oauth2_data.get("code_challenge", None), "code_challenge_method": self.oauth2_data.get("code_challenge_method", None), } return initial_data def form_valid(self, form): client_id = form.cleaned_data["client_id"]## ... source file continues with no further FormView examples...

Example 4 from django-wiki

django-wiki(project documentation,demo,and PyPI page)is a wiki system code library for Djangoprojects that makes it easier to create user-editable content.The project aims to provide necessary core features and thenhave an easy plugin format for additional features, rather thanhaving every exhaustive feature built into the core system.django-wiki is a rewrite of an earlier now-defunct projectnamed django-simplewiki.

The code for django-wiki is provided as open source under theGNU General Public License 3.0.

django-wiki / src/wiki / views / accounts.py

# accounts.pyfrom django.conf import settings as django_settingsfrom django.contrib import messagesfrom django.contrib.auth import get_user_modelfrom django.contrib.auth import login as auth_loginfrom django.contrib.auth import logout as auth_logoutfrom django.contrib.auth.forms import AuthenticationFormfrom django.shortcuts import get_object_or_404from django.shortcuts import redirectfrom django.shortcuts import renderfrom django.urls import reversefrom django.utils.translation import gettext as _from django.views.generic import CreateViewfrom django.views.generic import FormViewfrom django.views.generic import UpdateViewfrom django.views.generic import Viewfrom wiki import formsfrom wiki.conf import settingsUser = get_user_model()class Signup(CreateView): model = User form_class = forms.UserCreationForm template_name = "wiki/accounts/signup.html" def dispatch(self, request, *args, **kwargs): if not request.user.is_anonymous and not request.user.is_superuser: return redirect("wiki:root") if not settings.ACCOUNT_HANDLING: return redirect(settings.SIGNUP_URL) if not request.user.is_superuser and not settings.ACCOUNT_SIGNUP_ALLOWED: c = {"error_msg": _("Account signup is only allowed for administrators.")} return render(request, "wiki/error.html", context=c) return super().dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context["honeypot_class"] = context["form"].honeypot_class context["honeypot_jsfunction"] = context["form"].honeypot_jsfunction return context def get_success_url(self, *args): messages.success( self.request, _("You are now signed up... and now you can sign in!") ) return reverse("wiki:login")class Logout(View): def dispatch(self, request, *args, **kwargs): if not settings.ACCOUNT_HANDLING: return redirect(settings.LOGOUT_URL) return super().dispatch(request, *args, **kwargs) def get(self, request, *args, **kwargs): auth_logout(request) messages.info(request, _("You are no longer logged in. Bye bye!")) return redirect("wiki:root")class Login(FormView): form_class = AuthenticationForm template_name = "wiki/accounts/login.html" def dispatch(self, request, *args, **kwargs): if not request.user.is_anonymous: return redirect("wiki:root") if not settings.ACCOUNT_HANDLING: return redirect(settings.LOGIN_URL) return super().dispatch(request, *args, **kwargs) def get_form_kwargs(self): self.request.session.set_test_cookie() kwargs = super().get_form_kwargs() kwargs["request"] = self.request return kwargs def post(self, request, *args, **kwargs): self.referer = request.session.get("login_referer", "") return super().post(request, *args, **kwargs) def get(self, request, *args, **kwargs): self.referer = request.META.get("HTTP_REFERER", "") request.session["login_referer"] = self.referer## ... source file continues with no further FormView examples...
django.views.generic FormView Example Code (2024)

References

Top Articles
Latest Posts
Article information

Author: Sen. Ignacio Ratke

Last Updated:

Views: 6497

Rating: 4.6 / 5 (76 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Sen. Ignacio Ratke

Birthday: 1999-05-27

Address: Apt. 171 8116 Bailey Via, Roberthaven, GA 58289

Phone: +2585395768220

Job: Lead Liaison

Hobby: Lockpicking, LARPing, Lego building, Lapidary, Macrame, Book restoration, Bodybuilding

Introduction: My name is Sen. Ignacio Ratke, I am a adventurous, zealous, outstanding, agreeable, precious, excited, gifted person who loves writing and wants to share my knowledge and understanding with you.