urls example createview based django django-forms django-views django-registration

example - reverse django



get_success_url() toma exactamente 3 argumentos(2 dados) (3)

El método get_success_url no toma la solicitud como argumento. Eliminarlo

class MyRegistrationView(RegistrationView): def get_success_url(self, user): # the named URL that we want to redirect to after # successful registration return (''home'')

En este caso, dado que siempre se redirecciona a la vista de home , puede establecer success_url en success_url lugar:

class MyRegistrationView(RegistrationView): success_url = ''home''

cada uno, estoy usando

django-registration-redux (1.4)

para mi registro django (django 1.8) ,, sin embargo ,, cuando nunca me registré la web mostrará el error

,, pero el views.py en form_valid, línea 43 es la función de edición, parece que no se trata del registro ??

views.py

@login_required def edit_thing(request, slug): # grab the object... thing = ProductsTbl.objects.get(slug=slug) if thing.user != request.user: raise Http404 # set the form we''re using... form_class = ProductsTblForm if request.method == ''POST'': # grab the data from the submitted form form = form_class(data=request.POST,files=request.FILES,instance=thing)#**line 43** if form.is_valid(): # save the new data form.save() return redirect(''thing_detail'', slug=thing.slug) # otherwise just create the form else: form = form_class(instance=thing) # and render the template return render(request, ''things/edit_thing.html'', { ''thing'': thing, ''form'': form, })

urls.py

from django.conf.urls import patterns, url,include from django.contrib import admin from django.views.generic import TemplateView from designer import views from designer.backends import MyRegistrationView from django.conf import settings from django.contrib.auth.views import ( password_reset, password_reset_done, password_reset_confirm, password_reset_complete, ) .... urlpatterns = [ .... url(r''^accounts/register/$'', MyRegistrationView.as_view(), name=''registration_register''), .... ]

registration_form.html

<h1>Registration Form</h1> <form role="form" action="" method="post"> {% csrf_token %} {{ form.as_p }} <input type="submit" value="Submit" /> </form> {% endblock content %}

aunque obtuve este error, mis bases de datos aún escribieron en el usuario y la contraseña ,,,. ¿Alguien puede decirme por qué tengo este error? Muchas gracias

backends.py

from registration.backends.simple.views import RegistrationView class MyRegistrationView(RegistrationView): def get_success_url(self, request, user): # the named URL that we want to redirect to after # successful registration return (''home'')


En django-registration-redux RegistrationView ha definido get_success_url como este.

def get_success_url(self, user=None): """ Use the new user when constructing success_url. """ return super(RegistrationView, self).get_success_url()

Por lo tanto, parece que solo se pasarán dos parámetros a ese funciton. Sin embargo, en tu subclase de si tienes

def get_success_url(self, request, user): # the named URL that we want to redirect to after # successful registration return (''home'')

Que tiene un parámetro de solicitud adicional que no vas a recibir. de ahí el error.


después de la versión 1.4, el método get_success_url no toma la solicitud como argumento:

def get_success_url(self, user=None):

Sin embargo, si necesita procesar el objeto de solicitud (por ejemplo, desea recordar la página desde la cual el usuario decidió registrarse y que se puede pasar como un argumento de obtención o publicación) django-registration-redux proporciona una señal muy conveniente: registro .signals.user_registered

como sigue:

def remember_program_for_registration(sender, user, request, **kwargs): [do some processing of the request object]