This is a good idea for consistency, but did nothing to fix the problem. Is
the a Category class somewhere in Django that I don't know about that could
be conflicting??
On Feb 3, 2008 8:15 AM, Ned Batchelder <[EMAIL PROTECTED]> wrote:
> It looks like you are using different styles of importing your models in
> different places:
>
> views.py: from weblog.models import Category, Entry
> blog_extras.py: from lukenslanguages.weblog.models import Entry
>
> I can't quite see how that leads to your "cannot import name Category"
> error, but I'd try making those imports the same. Your imports may be
> getting tangled up in relative imports meaning different things from
> different places. I'm guessing the directory above lukenslanguages is on
> your PYTHONPATH, so make them all start from lukenslanguages like the
> blog_extras.py imports do.
>
> --Ned.
>
> [EMAIL PROTECTED] wrote:
>
> Hi Ned,
>
> I figured as much, but since without the 'try' made no difference, I
> thought I'd give it a whirl.... here is the source.
> 'lukenslanguages' is the project directory.
>
> #lukenslanguages/weblog/models.py
>
> from django.db import models
>
> class Category(models.Model):
> name = models.CharField(maxlength=20)
> url = models.SlugField(prepopulate_from=("name",))
>
> def __str__(self):
> return self.name
>
> class Admin:
> pass
>
> class Entry(models.Model):
> title = models.CharField(maxlength=100)
> url = models.SlugField(prepopulate_from=("title",))
> category = models.ForeignKey(Category)
> body = models.TextField()
> date = models.DateField()
>
> def __str__(self):
> return self.title
>
> class Admin:
> pass
>
> #lukenslanguages/urls.py
>
> from django.conf.urls.defaults import *
> from lukenslanguages import views
>
> urlpatterns = patterns('',
> (r'^admin/', include('django.contrib.admin.urls')),
> (r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
> {'document_root': 'C:/django-0.96.1/lukenslanguages/templates/'}),
> (r'(^[a-z-]+)/$', views.entry_list),
> )
>
> #lukenslanguages/views.py
>
> from django.shortcuts import render_to_response
> from weblog.models import Category, Entry
> from django.template import loader, RequestContext
> from context_processors import menu_list
>
> def entry_list(request, category):
> c = Category.objects.get(url=category)
> entries = c.entry_set.all()
> return render_to_response('weblog/blogentry_list.html',
> {'entries': entries, 'category':c.name,
> 'title': c.name},
>
> context_instance=RequestContext(request, processors=[menu_list]))
>
> #lukenslanguages/context_processors.py
>
> from weblog.models import Category
>
> def menu_list(request):
> "A context processor that serves the categories for use as menu
> items"
> return {
> 'categories': Category.objects.all()
> }
>
> #lukenslanguages/weblog/templatetags/blog_extras.py
>
> from django.template import Library
> from lukenslanguages.weblog.models import Entry
>
> register = Library()
>
> @register.filter
> def category_url(entry_id):
> e = Entry.objects.get(id=entry_id)
> return e.category.url
>
> I think that this is all of the pertinent code. If you would like to
> see anything else, please let me know.
>
> Thank you,
> Jonathan
> On Feb 3, 7:43 am, Ned Batchelder <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
> wrote:
>
>
> When Kenneth suggested "try: @register.filter", he meant, try:
> "@register.filter", that is, the word "try:" was not meant to go in the
> file.
>
> You may have an import problem in your models file. Can you post more
> of the source so that we can take a look?
>
> --Ned.http://nedbatchelder.com/blog
>
>
> [EMAIL PROTECTED] wrote:
>
>
> Thanks for the input.
>
>
> try: @register.filter <--- without the '()'
>
>
> so long as this is in the file, I get a syntax error if I run the file
> from the command prompt, with the caret pointing to the '@', with or
> without the '()'. I get the same thing if I do this after the
> function:
>
>
> try: register.filter(category_url)
>
>
> If there is no 'try' in the module, I can import the the filter
> function in the python shell and it works correctly.
> I am not sure what else you might have meant by running from the
> shell.
> Thanks for your help.
>
>
> Jonathan
>
>
> --
>
>
> regards
> kghttp://lawgon.livejournal.comhttp://nrcfosshelpline.in/web/
> Foss Conference for the common man:http://registration.fossconf.in/web/
>
> --
> Ned Batchelder,http://nedbatchelder.com
>
>
> --
> Ned Batchelder, http://nedbatchelder.com
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---