Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 202457
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T17:17:30+00:00 2026-05-11T17:17:30+00:00

I have a Django my_forms.py like this: class CarSearchForm(forms.Form): # lots of fields like

  • 0

I have a Django my_forms.py like this:

class CarSearchForm(forms.Form):  
    # lots of fields like this
    bodystyle = forms.ChoiceField(choices=bodystyle_choices())  

Each choice is e.g. (“Saloon”, “Saloon (15 cars)”). So the choices are computed by this function.

def bodystyle_choices():  
    return [(bodystyle.bodystyle_name, '%s (%s cars)' %  
          (bodystyle.bodystyle_name, bodystyle.car_set.count()))  
          for bodystyle in Bodystyle.objects.all()]

My problem is the choices functions are getting executed every time I merely import my_forms.py. I think this is due to the way Django declares its fields: in the class but not in a class method. Which is fine but my views.py imports my_forms.py so the choices lookups are done on every request no matter which view is used.

I thought that maybe putting choices=bodystyle_choices with no bracket would work, but I get:

'function' object is not iterable

Obviously I can use caching and put the “import my_forms” just in the view functions required but that doesn’t change the main point: my choices need to be lazy!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-11T17:17:30+00:00Added an answer on May 11, 2026 at 5:17 pm

    You can use the “lazy” function 🙂

    from django.utils.functional import lazy
    
    class CarSearchForm(forms.Form):  
        # lots of fields like this
        bodystyle = forms.ChoiceField(choices=lazy(bodystyle_choices, tuple)())
    

    very nice util function !

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a ChoiceField in my Django Form: gender = forms.ChoiceField(label='', choices=GENDER) I'd like
I have a form in my forms.py that looks like this: from django import
I would like to put some help text in this form. class ItemForm(forms.ModelForm): alternative_id
Am using django forms on my app. I have a model Client like this:
I have a Django model that looks like this. class Solution(models.Model): ''' Represents a
When I define a Django form class similar to this: def class MyForm(forms.Form): check
I have a django model like this: class Something(models.Model): attr1 = models.IntegerField() attr2 =
I have this code in my forms.py : from django import forms from formfieldset.forms
Well, I have one form, similar to dajax django forms example, all is working
I have option groups, somethings like this: Choices = (('Group1',(('Option1','Option1'),('Option2','Option2')))) Is there anyway to

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.