Django forma la forma de población de caché -- python campo con django camp Relacionados El problema

Django forms cache populating form


1
vote

problema

Español

Estoy poblando las opciones de un formulario en Django,

El problema es que cuando lo veo en el navegador, la lista de años está bien de acuerdo con la base de datos, pero cuando cambie alguna fecha en la base de datos, la lista de selección de año no se actualiza.

   <asp:UpdatePanel ID="up" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false" >                    <ContentTemplate >                        <asp:Panel runat="server" ID="myPanel" >                         <label id="ssd" runat="server" >abc</label>                        </asp:Panel>                        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click"  Text="test"/>                    </ContentTemplate>                </asp:UpdatePanel> 8  

Intento este código, pero recibo el error

get_prices () no toma argumentos (1 dado)

¿Cómo puedo informar esto?

Original en ingles

i'm populating the choices of a form in django,

The problem is that when i see it in the browser, the year list is fine according to the database, but when i change some date in database, the year select list doesn't update.

class PlanForm(forms.Form):      def get_prices():         return forms.ChoiceField(             choices=map(                 lambda x: (                     x.pk,                      (                         unicode(x.length)                          + _(' Day Listing / ')                          + unicode(x.pics)                          + _(' Photos: ')                          + _('$ ')                          + unicode(x.price)                     ),                 ),                 Pricing.objects.filter(                     enable=True,                     site=settings.SITE_ID,                 ),             ),             label=_('Plans'),             widget=forms.RadioSelect         )      def get_options():         return forms.MultipleChoiceField(             choices=map(                 lambda x: (                     x.pk,                      (                         unicode(x)                          + _(' : $')                          + unicode(x.price)                     ),                 ),                 PricingOptions.objects.filter(                     enable=True,                     site=settings.SITE_ID,                 )             ),             label=_('Ads Options'),             widget=forms.CheckboxSelectMultiple,             required=False         )      def __init__(self, *args, **kwargs):         print 'passou no init'         super(PlanForm, self).__init__(*args, **kwargs)         self.fields['pricing'] = self.get_prices()         self.fields['pricing_options'] = self.get_options()       pricing = get_prices()     pricing_options = get_options() 

I try this code, but I get the error

get_prices() takes no arguments (1 given)

how can I sove this?

     

Lista de respuestas

0
 
vote

Métodos de clase (por ejemplo, get_prices ) Necesidad de al menos un argumento self que se rellena con la instancia de clase que llama al método.

 

class methods (e.g. get_prices) need at least one argument self which gets populated with the class instance calling the method.

 
 
0
 
vote

Agregar <A href="http://docs.python.org/library/functions.html#staticmethod" rel="nofollow_>> @staticmethod decorador a sus métodos. Python Sé por defecto Asumir funciones que se definen dentro de una clase como un método y pasa 'Auto' como primer argumento. staticmethod Previene este comportamiento predeterminado.

  class PlanForm(forms.Form):      @staticmethod     def get_prices():         return forms.ChoiceField(choices=map(lambda x: (x.pk, unicode(x.length) + _(' Day Listing / ') + unicode(x.pics) +  _(' Photos: ') + _('$ ') + unicode(x.price)  ), Pricing.objects.filter(enable=True,site=settings.SITE_ID)),label=_('Plans'), widget=forms.RadioSelect)      @staticmethod     def get_options():         return forms.MultipleChoiceField(choices=map(lambda x: (x.pk, unicode(x) + _(' : $') + unicode(x.price)), PricingOptions.objects.filter(enable=True,site=settings.SITE_ID)),label=_('Ads Options'), widget=forms.CheckboxSelectMultiple, required=False)      def __init__(self, *args, **kwargs):         print 'passou no init'         super(PlanForm, self).__init__(*args, **kwargs)         self.fields['pricing'] = self.get_prices()         self.fields['pricing_options'] = self.get_options()       pricing = get_prices()     pricing_options = get_options()   
 

Add @staticmethod decorator to your methods. Python be default assume functions defiened inside a class as a method and passes 'self' as first argument. staticmethod prevents this default behaviour.

class PlanForm(forms.Form):      @staticmethod     def get_prices():         return forms.ChoiceField(choices=map(lambda x: (x.pk, unicode(x.length) + _(' Day Listing / ') + unicode(x.pics) +  _(' Photos: ') + _('$ ') + unicode(x.price)  ), Pricing.objects.filter(enable=True,site=settings.SITE_ID)),label=_('Plans'), widget=forms.RadioSelect)      @staticmethod     def get_options():         return forms.MultipleChoiceField(choices=map(lambda x: (x.pk, unicode(x) + _(' : $') + unicode(x.price)), PricingOptions.objects.filter(enable=True,site=settings.SITE_ID)),label=_('Ads Options'), widget=forms.CheckboxSelectMultiple, required=False)      def __init__(self, *args, **kwargs):         print 'passou no init'         super(PlanForm, self).__init__(*args, **kwargs)         self.fields['pricing'] = self.get_prices()         self.fields['pricing_options'] = self.get_options()       pricing = get_prices()     pricing_options = get_options() 
 
 
0
 
vote

Pruébalo:

  class PlanForm(forms.Form):      def __init__(self, *args, **kwargs):         print 'passou no init'         super(PlanForm, self).__init__(*args, **kwargs)         self.fields['pricing'] = forms.ChoiceField(choices=map(lambda x: (x.pk, unicode(x.length) + _(' Day Listing / ') + unicode(x.pics) +  _(' Photos: ') + _('$ ') + unicode(x.price)  ), Pricing.objects.filter(enable=True,site=settings.SITE_ID)),label=_('Plans'), widget=forms.RadioSelect)         self.fields['pricing_options'] =  forms.MultipleChoiceField(choices=map(lambda x: (x.pk, unicode(x) + _(' : $') + unicode(x.price)), PricingOptions.objects.filter(enable=True,site=settings.SITE_ID)),label=_('Ads Options'), widget=forms.CheckboxSelectMultiple, required=False)   
 

Try it:

class PlanForm(forms.Form):      def __init__(self, *args, **kwargs):         print 'passou no init'         super(PlanForm, self).__init__(*args, **kwargs)         self.fields['pricing'] = forms.ChoiceField(choices=map(lambda x: (x.pk, unicode(x.length) + _(' Day Listing / ') + unicode(x.pics) +  _(' Photos: ') + _('$ ') + unicode(x.price)  ), Pricing.objects.filter(enable=True,site=settings.SITE_ID)),label=_('Plans'), widget=forms.RadioSelect)         self.fields['pricing_options'] =  forms.MultipleChoiceField(choices=map(lambda x: (x.pk, unicode(x) + _(' : $') + unicode(x.price)), PricingOptions.objects.filter(enable=True,site=settings.SITE_ID)),label=_('Ads Options'), widget=forms.CheckboxSelectMultiple, required=False) 
 
 
 
 

Relacionados problema

0  ¿Pueden los usuarios que han usado Django y Ruby en los rieles dan una pequeña comparación de usarlos?  ( Can users who have used both django and ruby on rails give a little comparison o ) 
duplicado: Django o Ruby-On-Rails? He estado leyendo en Ruby On Rails, ¡y parece que en algunos hilos, algunos usuarios como Django también? ¿Puede ...

0  ¿Cuál es la mejor UI para seleccionar las etiquetas de una lista de las etiquetas existentes?  ( What is the best ui for selecting tags from a list of existing tags ) 
Estoy usando el marcado Django. Mi modelo simplemente contiene un campo con una lista de etiquetas separadas por comas. Me gustaría que el usuario pudiera sel...

3  Modificar la dirección en Django Middleware  ( Modify address in django middleware ) 
No sé si es posible, pero me gustaría agregar algunos parámetros al final de la URL utilizando Middleware. ¿Se puede hacer sin redireccionar después de la URL...

92  ¿Cómo sabe Django la orden de prestar campos de formulario?  ( How does django know the order to render form fields ) 
Si tengo un formulario de Django, como: class ContactForm(forms.Form): subject = forms.CharField(max_length=100) message = forms.CharField() se...

2  ¿Django tiene un caché basado en la memoria o tiene que usar Memcache?  ( Does django have a memory based cache or do you have to use memcache ) 
¿Puedo almacenar objetos en la memoria de los servidores a los datos de caché utilizando Django, o tengo que usar Memcache para eso? ...

3  AppNames Unicode en Django  ( Unicode appnames in django ) 
Vivo en Noruega, y cuando hago a las aplicaciones de Django, me gustaría poder nombrar mis aplicaciones con personajes como "æøå", estos personajes funcionan ...

1  Subir archivos con Django-Perfiles  ( File upload with django profiles ) 
Estoy usando el paquete Django-Contib django-perfiles , y todo está funcionando bien, mi único problema es que me gustaría que el formulario cargar un archiv...

17  ¿Está exponiendo el token de protección de la sesión de una sesión segura?  ( Is exposing a sessions csrf protection token safe ) 
Django viene con protección middleware de protección CSRF , que Genera un token único por sesión para su uso en formularios. Scanse todas las solicitudes ent...

17  ¿Hay alguna lista de motores de blog, escrito en Django?  ( Is there any list of blog engines written in django ) 
¿Hay alguna lista de motores de blog, escrito en Django? ...

55  Vistas de clase en Django  ( Class views in django ) 
django Ver puntos a una función, lo que puede ser un problema si quieres cambiar solo un poco de funcionalidad. Sí, podría tener un millón de argumentos de ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos