I have a function called get_urls that returns a list of absolute_urls
for various models in the same project. This function is used for
another model in a way so that when a particular model appears on the
site, I can choose which part of the site this model links to.
# utils.py
def get_urls():
urls = []
for flatpage in FlatPage.objects.order_by('title')
urls.append(flatpage.url, '%s: %s' % ('Flatpage',
flatpage.title),))
return urls
There are more objects, this is just a sample with the well-known
FlatPage model.
The particular model I use this with looks like this:
# models.py
from utils import get_urls
class BannerImage(models.Model):
image = models.ImageField(etc)
url = models.CharField(max_length=100, choices=get_urls())
etc...
So it turned out that the admin seemed to be caching the choices. So,
if I added a new flatpage, it would not be listed there until I
restarted the webserver. So instead of referring to
Flatpage.objects.etc... directly in get_urls, I made a function that
returns the queryset instead:
# utils.py
def get_flatpages():
return FlatPage.objects.order_by('title')
Problem still seemed to exist. I tried making a custom ModelForm in
admin.py for this BannerImage model:
# admin.py
from utils import get_urls
class BannerImageForm(forms.ModelForm):
url = forms.ChoiceField(choices=get_urls())
class Meta:
model = BannerImage
...etc...
I tested with the Python shell to see if the get_urls function returns
an updated list after a new object and it does. Its just the admin
that seems to have the problem. Is there any way I can get this to
work?
Keith
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---