Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
SmirkingJack
Nov 27, 2002

JoeNotCharles posted:

Try "print test.var1" and "print test.var2". (It'll be more clear if you initialize var1 to "default" instead of "".)

Here's what's happening:
...

Whoops, I forgot to say thanks for this. That's an interesting behavior, one that I obviously did not expect. So, thank you for the help.

Adbot
ADBOT LOVES YOU

No Safe Word
Feb 26, 2005

For anyone using Django who doesn't regularly read James Bennett's blog, he recently put up a good three-part post on the new forms stuff (which has been in the SVN for a while but isn't in any release yet).
Though if you're a Django user, I'd suggest reading his blog regularly along with Malcolm Tredinnick's blog (though it's less Django-dense)

No Safe Word fucked around with this message at 01:09 on Nov 27, 2007

hey mom its 420
May 12, 2007

Haha, found this PEP on reddit, laffed.
http://www.python.org/dev/peps/pep-3117/

Horn
Jun 18, 2004

Penetration is the key to success
College Slice
We're onto the third page and I can't believe this hasn't been asked yet: what is everyone's favorite windows development tool for Python (text editor or full IDE)? I've been using textpad which is awesome for small scripts as its very fast but I'd like to find something that has integrated projects and debugging support. I've heard a lot about eclipse but it was a little too slow for me the last time I used it.

deimos
Nov 30, 2006

Forget it man this bat is whack, it's got poobrain!
I use VIM. But as far as IDEs go PyDev is best free, Wing is best commercial.

duck monster
Dec 15, 2004

Yeah. I tend to use pydev, partly because I basically try and use eclipse for everything. Its just what I'm used to.

Its a loving shame that boa-constructor got shanked by a dev who doesn't seem interested in letting anyone else contribute. It would of been a spectacular IDE had it been allowed to flourish.

Git
Aug 21, 2004

I use nano through Cygwin. Yes, I apparently do hate myself.

I think I'm going to try to get used to using PyDev now though.

deimos
Nov 30, 2006

Forget it man this bat is whack, it's got poobrain!

Git posted:

I use nano through Cygwin. Yes, I apparently do hate myself.

I think I'm going to try to get used to using PyDev now though.

god, notepad++ is probably 100x better than nano through cygwin.

m0nk3yz
Mar 13, 2002

Behold the power of cheese!
I use textmate and Eclipse+Pydev. Textmate when I'm not working on our huge work-projects in house (autocomplete is a must on large projects).

Borommakot
Jan 8, 2002
WingIDE does everything I need, and more. You can get like 20 days of free evaluation, so go ahead and try it to see if it works for you.

Typh
Apr 18, 2003

LAY EGG IS TRUE!!!
Didn't see anyone mention it, but The Definitive Guide to Django: Web Development Done Right is (finally) out.

I bought it in ebook format, but I'm sure it'll be at djangobook.com soon enough.

Hammertime
May 21, 2003
stop

Typh posted:

Didn't see anyone mention it, but The Definitive Guide to Django: Web Development Done Right is (finally) out.

I bought it in ebook format, but I'm sure it'll be at djangobook.com soon enough.

I've pre-ordered a copy from amazon.

One question:
How have they covered form generation in the book? My django knowledge is very limited but I understand there's oldforms and newforms (which will just be forms when it's ready).

m0nk3yz
Mar 13, 2002

Behold the power of cheese!
If you want an excellent newforms walkthrough, check out the intro to newforms posts on James Bennett's blog:

http://www.b-list.org/weblog/2007/nov/22/newforms/
http://www.b-list.org/weblog/2007/nov/23/newforms/
http://www.b-list.org/weblog/2007/nov/25/newforms/

Digital Spaghetti
Jul 8, 2007
I never gave a reach-around to a spider monkey while reciting the Pledge of Alligence.
I have a Django question: I'm re-building my Paste Monkey app from scratch using Django, and I found the Pygments syntax highlighting library. What I do with a paste is store the paste as plain text in the database, and I want to format it to the view. Here is my code:

code:
from django.shortcuts import render_to_response, get_object_or_404
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from pastemonkey2.pastes.models import Paste, Language

from pygments import highlight
from pygments.lexers import get_lexer_by_name
from pygments.formatters import HtmlFormatter

def highlight(source, language):
    lexer = get_lexer_by_name(language, stripall=True)
    formatter = HtmlFormatter(linenos=True, cssclass="source")
    result = (source, lexer, formatter)
    return result

def show_paste(request, object_id):
    p = get_object_or_404(Paste, pk=object_id)
    p.formatted = highlight(p.paste, p.language)
    return render_to_response('pastes/paste_detail.html', {'object': p})
As you can see, I get the record from the DB and put it into p, and want to pass the paste and the language to the syntax highligher. The problem is that instead of passing in just the paste and the language, it has it as an object. So for example instead of passing 'python' it passes '<Language: python>'. Does anyone know a way to get round it?

Horn
Jun 18, 2004

Penetration is the key to success
College Slice
Have you tried casting the object to a string or maybe use __str__ (which should do the same thing)? Looking at the Pygments documentation real quick does that object have a name property perhaps?

Horn fucked around with this message at 14:11 on Nov 29, 2007

unclefu
Jul 1, 2004
mr .shuffles
Are you doing something like {{ object.language }} in your template? If so you need to define a __unicode__ method in your Language class that returns whatever property contains the name.

unclefu fucked around with this message at 14:24 on Nov 29, 2007

Digital Spaghetti
Jul 8, 2007
I never gave a reach-around to a spider monkey while reciting the Pledge of Alligence.

unclefu posted:

Are you doing something like {{ object.language }} in your template? If so you need to define a __unicode__ method in your Language class that returns whatever property contains the name.

Ok, I worked the language bit out by enclosing it in a str() but, the paste still comes out duff. I've checked the DB, and it's definitely plain text I should be passing with str(p.paste), but I am getting this instead:

code:
("from django.conf.urls.defaults import *\r\n
from pastemonkey2.pastes.models import Paste, Language\r\nfrom pastemonkey2.pastes.views import *\r\n\r\ninfo_dict = {\r\n 'queryset': 
Paste.objects.all(),\r\n}\r\n\r\nurlpatterns = patterns('',\r\n (r'^$', 'django.views.generic.list_detail.object_list',
info_dict),\r\n (r'^(?P<object_id>\\d+)/$', 
'pastemonkey2.pastes.views.show_paste'),\r\n)", <pygments.lexers.PythonLexer with {'stripall': True}>, 
<pygments.formatters.html.HtmlFormatter object at 0x88ca1ec>)
(btw the above comes out as one line, but i've broken it up here for easier reading)

JoeNotCharles
Mar 3, 2005

Yet beyond each tree there are only more trees.

Digital Spaghetti posted:

Ok, I worked the language bit out by enclosing it in a str() but, the paste still comes out duff. I've checked the DB, and it's definitely plain text I should be passing with str(p.paste), but I am getting this instead:

code:
("from django.conf.urls.defaults import *\r\n
from pastemonkey2.pastes.models import Paste, Language\r\nfrom pastemonkey2.pastes.views import *\r\n\r\ninfo_dict = {\r\n 'queryset': 
Paste.objects.all(),\r\n}\r\n\r\nurlpatterns = patterns('',\r\n (r'^$', 'django.views.generic.list_detail.object_list',
info_dict),\r\n (r'^(?P<object_id>\\d+)/$', 
'pastemonkey2.pastes.views.show_paste'),\r\n)", <pygments.lexers.PythonLexer with {'stripall': True}>, 
<pygments.formatters.html.HtmlFormatter object at 0x88ca1ec>)
(btw the above comes out as one line, but i've broken it up here for easier reading)

That's a 3-tuple - ("big string", <pygments Lexer object>, <pygments Formatter object>). If that's the contents of p.paste, you can get just the string with p.paste[0]. One idiom I like to use is "(pasteStr, lexer, formatter) = p.paste", which puts each part of the tuple into its own variable.

I presume you're supposed to use the lexer and formatter objects to turn the string into HTML, but you'll have to check the pygments docs to find out how.

Digital Spaghetti
Jul 8, 2007
I never gave a reach-around to a spider monkey while reciting the Pledge of Alligence.

JoeNotCharles posted:

That's a 3-tuple - ("big string", <pygments Lexer object>, <pygments Formatter object>). If that's the contents of p.paste, you can get just the string with p.paste[0]. One idiom I like to use is "(pasteStr, lexer, formatter) = p.paste", which puts each part of the tuple into its own variable.

I presume you're supposed to use the lexer and formatter objects to turn the string into HTML, but you'll have to check the pygments docs to find out how.

Thanks JoeNotCharles, that got rid of the extra objects in the tupple - but yea, there still seems to be an issue with it not parsing the text and formatting it, I'll dig deeper on that one.

Edit: Oh man, I had a typo in my code that I completely missed as it didn't throw any errors :/ Well I've got it returning the code as parsed HTML now, but instead of rendering as HTML it renders as text (and weird in Firebug it looks fine). Thanks anyway, at least it pointed me in the right direction, and I learned a new thing in Python :)

Digital Spaghetti fucked around with this message at 16:55 on Nov 29, 2007

unclefu
Jul 1, 2004
mr .shuffles
Django templates automatically escape all output now. It sounds like you need to pass that highlighted output through the 'safe' filter. Here's more info about it.

Digital Spaghetti
Jul 8, 2007
I never gave a reach-around to a spider monkey while reciting the Pledge of Alligence.

unclefu posted:

Django templates automatically escape all output now. It sounds like you need to pass that highlighted output through the 'safe' filter. Here's more info about it.

Yea, after much searching I eventually found this, works a treat :)

No Safe Word
Feb 26, 2005

m0nk3yz posted:

If you want an excellent newforms walkthrough, check out the intro to newforms posts on James Bennett's blog:

http://www.b-list.org/weblog/2007/nov/22/newforms/
http://www.b-list.org/weblog/2007/nov/23/newforms/
http://www.b-list.org/weblog/2007/nov/25/newforms/

No Safe Word at the top of this page posted:

For anyone using Django who doesn't regularly read James Bennett's blog, he recently put up a good three-part post on the new forms stuff (which has been in the SVN for a while but isn't in any release yet).
Though if you're a Django user, I'd suggest reading his blog regularly along with Malcolm Tredinnick's blog (though it's less Django-dense)
:psyduck:

m0nk3yz
Mar 13, 2002

Behold the power of cheese!

No Safe Word posted:

:psyduck:

Dangit, he asked though. He should have read the thread! :argh:

Hammertime
May 21, 2003
stop

m0nk3yz posted:

Dangit, he asked though. He should have read the thread! :argh:

Apologies, I'd actually read the newform articles you'd previously linked to. My question was more in the direction of how the book specifically handles it, since it seems to me the book has been written when quite a lot is still in flux.

i.e. is this book(in paper form) going to be outdated within a month?

hey mom its 420
May 12, 2007

I'm getting into pygame right now and I think it's pretty cool, although does anyone else think that the documentation is lacking? It just seems that the function descriptions aren't as clear as they could be and there's never any example of usage.
For instance, there are key constans listen in the documentation for pygame.key but it doesn't say anywhere in exactly which namespace they are. I looked everywhere through the pygame.key namespace only to see that they're defined in the main module namespace.

POKEMAN SAM
Jul 8, 2004

Bonus posted:

I'm getting into pygame right now and I think it's pretty cool, although does anyone else think that the documentation is lacking? It just seems that the function descriptions aren't as clear as they could be and there's never any example of usage.
For instance, there are key constans listen in the documentation for pygame.key but it doesn't say anywhere in exactly which namespace they are. I looked everywhere through the pygame.key namespace only to see that they're defined in the main module namespace.

pygame.locals has all of the constants, I think.

PnP Bios
Oct 24, 2005
optional; no images are allowed, only text

Bonus posted:

I'm getting into pygame right now and I think it's pretty cool, although does anyone else think that the documentation is lacking? It just seems that the function descriptions aren't as clear as they could be and there's never any example of usage.
For instance, there are key constans listen in the documentation for pygame.key but it doesn't say anywhere in exactly which namespace they are. I looked everywhere through the pygame.key namespace only to see that they're defined in the main module namespace.

Yes, the pygame documentation sucks quite bad. But it is a great library.

Digital Spaghetti
Jul 8, 2007
I never gave a reach-around to a spider monkey while reciting the Pledge of Alligence.
I'm trying to set up Apache mod_python to serve my Django website, but I'm having problems getting it working.

To explain, my project is under /home/digitalspaghetti/workspace/digitalspaghetti. Here is my apache conf file:

code:
NameVirtualHost *
<VirtualHost *>
	ServerAdmin webmaster@localhost
	ServerName digitalspaghetti
	DocumentRoot /home/digitalspaghetti/workspace/digitalspaghetti/
  <Directory '/home/digitalspaghetti/workspace/digitalspaghetti/'>
	</Directory>
	<Location />
		SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE digitalspaghetti.settings
    PythonDebug On
	</Location>
</VirtualHost>
However, it won't load the config file:

code:
MOD_PYTHON ERROR

ProcessId:      16305
Interpreter:    'digitalspaghetti'

ServerName:     'digitalspaghetti'
DocumentRoot:   '/home/digitalspaghetti/workspace/digitalspaghetti/'

URI:            '/'
Location:       '/'
Directory:      None
Filename:       '/home/digitalspaghetti/workspace/digitalspaghetti/'
PathInfo:       ''

Phase:          'PythonHandler'
Handler:        'django.core.handlers.modpython'

Traceback (most recent call last):

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1229, in _process_target
    result = _execute_target(config, req, object, arg)

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1128, in _execute_target
    result = object(arg)

  File "/usr/lib/python2.5/site-packages/django/core/handlers/modpython.py", line 188, in handler
    return ModPythonHandler()(req)

  File "/usr/lib/python2.5/site-packages/django/core/handlers/modpython.py", line 152, in __call__
    self.load_middleware()

  File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py", line 27, in load_middleware
    for middleware_path in settings.MIDDLEWARE_CLASSES:

  File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 28, in __getattr__
    self._import_settings()

  File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 57, in _import_settings
    self._target = Settings(settings_module)

  File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 85, in __init__
    raise EnvironmentError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)

EnvironmentError: Could not import settings 'digitalspaghetti.settings' (Is it on sys.path? Does it have syntax errors?): No module named digitalspaghetti.settings
Can anyone with experience help get it set up.

unclefu
Jul 1, 2004
mr .shuffles
I had to add this to my <Location "/"> directive:

code:
PythonPath "[r'c:\\path\\to\\djangoprojects', r'c:\\path\\to\\djangoprojects\\myproject'] + sys.path"

unclefu fucked around with this message at 15:37 on Dec 2, 2007

Digital Spaghetti
Jul 8, 2007
I never gave a reach-around to a spider monkey while reciting the Pledge of Alligence.
Yea, I eventually tried it and it worked - although some of my 3rd party apps are having problems so I've had to disable them until I can work them out :(

gabensraum
Sep 16, 2003


LOAD "NICE!",8,1
I came in here today to ask about IDEs with Django, to see that it has already been addressed. At work I primarily use ASP.NET with visual studio, and although at home I prefer to use Django, I'm a bit spoilt by how easy it is in VS to trace through my code. I've downloaded WingIDE for the trial, but anything less than the professional version is next to useless for me, and it's a bit much to pay considering I'm just tinkering with it at home.

Have people had any good experiences with Eclipse + pydev? The pydev author has a guide on getting it going for Django here, but it's the only IDE I haven't tried yet as I remember Eclipse as slow and bloated a few years ago. I'm sure it's better now.

hey mom its 420
May 12, 2007

Here's a good post from a guy who extended a function in C and got it to run from 30 seconds to 0.7 seconds. Pretty cool.
http://www.ginstrom.com/scribbles/2007/12/02/extending-python-with-c-a-case-study/

gabensraum
Sep 16, 2003


LOAD "NICE!",8,1

deep square leg posted:

Have people had any good experiences with Eclipse + pydev? The pydev author has a guide on getting it going for Django here, but it's the only IDE I haven't tried yet as I remember Eclipse as slow and bloated a few years ago. I'm sure it's better now.
Turns out that Eclipse is pretty awesome now. Also my new computer is 2.7GHz faster than the one I used to have, so that may have contributed.

I managed to get Eclipse+Pydev to run the django development server, do autocomplete, syntax highlighting etc. but it completely ignores my breakpoints and watches. These work fine in WingIDE, which is frustrating because now I want to use Eclipse.

Sgt. Raisins
Oct 21, 2007
Damnit

deep square leg posted:

I came in here today to ask about IDEs with Django, to see that it has already been addressed. At work I primarily use ASP.NET with visual studio, and although at home I prefer to use Django, I'm a bit spoilt by how easy it is in VS to trace through my code. I've downloaded WingIDE for the trial, but anything less than the professional version is next to useless for me, and it's a bit much to pay considering I'm just tinkering with it at home.

Have people had any good experiences with Eclipse + pydev? The pydev author has a guide on getting it going for Django here, but it's the only IDE I haven't tried yet as I remember Eclipse as slow and bloated a few years ago. I'm sure it's better now.

While maybe not a full blown IDE, Komodo Edit is really nice for both python and django. It works with django out of the box and allows you to make projects for easy organization, code completion, and custom highlighting. I really like it. Also, it is free unlike it's partner Komodo IDE.

Digital Spaghetti
Jul 8, 2007
I never gave a reach-around to a spider monkey while reciting the Pledge of Alligence.
I'm building a basic blog application in Django to replace Wordpress on my site eventually - it's nothing too fancy, but allows me to take PHP off my server. At the moment, I am building a blog app with 2 models, Category and Entry.

What I am trying to do is in my template for entry_detail.html (I'm using Generic views) I want to show in the sidebar a Related Entries section. What I'm having problems with is coming up with getting related entries from the DB. Here is my model code:

code:
from django.db import models
from django.db.models import permalink
from django.core import urlresolvers
from django.contrib.auth.models import User
from django.template.defaultfilters import slugify

import datetime
# Create your models here.

class Category(models.Model):
    """ A Category is a way to manage the taxonomy of the site"""
    name=models.CharField(max_length=50) #The name of the category
    description=models.TextField()
    slug=models.CharField(max_length=75, null=True, blank=True)
    active=models.BooleanField()
    generate_feed=models.BooleanField()
    parent=models.ForeignKey('self', null=True, blank=True)
    def __unicode__(self):
        return self.name
    def save(self):
        if not self.slug:
            self.slug = slugify(self.name)
        super(Category, self).save()
    def num_entries(self):
        """Returns the number of entries in this category"""
        return self.entry_set.count()
    num_entries.short_description = "Number of Entries"
    class Meta:
        verbose_name_plural = 'Categories'
    class Admin:
        fields = (
                  ('Category Details', {'fields': ('name', 'description', 'parent',)}),
                  ('Category Settings', {'fields': ('active', 'generate_feed', 'slug',)}),
        )
        list_display = ('name', 'slug', 'active', 'generate_feed', 'num_entries', 'parent',)
        search_fields = ['name','parent']
        
PUBLISHED_CHOICES = (
    (0, 'Draft'),
    (1, 'Pending Review'),
    (2, 'Published'),
    (3, 'Archived'),
)

class Entry(models.Model):
    title=models.CharField(max_length=255)
    body=models.TextField()
    user=models.ForeignKey(User)
    slug=models.CharField(max_length=75, null=True, blank=True)
    pub_date=models.DateTimeField('date published')
    published=models.IntegerField(max_length=1, choices=PUBLISHED_CHOICES, verbose_name="Publishing Status")
    front_page=models.BooleanField()
    sticky=models.BooleanField()
    allow_comments=models.BooleanField()
    truncate=models.BooleanField()
    categories=models.ManyToManyField(Category, limit_choices_to = {'active':1})
    def save(self):
        if not self.slug:
            self.slug = slugify(self.title)
        super(Entry, self).save()
    def __unicode__(self):
        return "%s" % self.title
    def was_published_today(self):
        """Flag to show if post was published today"""
        return self.pub_date.date() == datetime.date.today()
    was_published_today.short_description = 'Published today?'
    def get_absolute_url(self):
        """Get the URL of this entry to create a permalink"""
        return ('news-detail', (), {
            "slug": self.slug, 
            "year":self.pub_date.year, 
            "month":self.pub_date.strftime("%b").lower(), 
            "day":self.pub_date.day
            })
    get_absolute_url = permalink(get_absolute_url)
    class Meta:
        verbose_name_plural = 'Entries'
        ordering = ['-pub_date']
    class Admin:
       fields = (
                  ('Entry Content', {'fields': ('title', 'body', 'user', 'categories')}),
                  ('Date information', {'fields': ('pub_date',)}),
                  ('Publishing Details', {'fields': ('slug', 'published', 'front_page', 'sticky', 'allow_comments', 'truncate')}),
        )
       list_display = ('title', 'user', 'front_page', 'sticky', 'allow_comments', 'truncate', 'pub_date', 'published', 'was_published_today', )
       list_filter = ['pub_date', 'categories']
       search_fields = ['body', 'title']
       date_hierarchy = 'pub_date'
       ordering = ('pub_date',)
As you can see, the entry.categories is a ManyToManyField, so what I'm thinking is:

1) When the entry is displayed, do a query to grab all entries in the database.
2) Do a for loop on our entry to get each category is belongs to
3) Inside the loop, do another loop for each entry from the database
4) Inside that loop, compare the categories and see if they match, if they do add the entry to be an array
5) Stop after finding 5 matching and pass the array to the template

To me, that seems rather complicated, so I'm wondering anyone with more Django/Python experience if you could think of an easier design pattern for this. Another line I am thinking is doing a {% tag %} like I have with my latest entries (I do {% latest_entries "10" %}) but I'm not sure how I would pass in the id (as {% related_entries "object.id" %} would pass the string object.id and not the actual id??)

deimos
Nov 30, 2006

Forget it man this bat is whack, it's got poobrain!
Make a manager for entries and use a filter: categories__in=[ list of categories on current entry instance ] and slice it to the first 5, it generates two queries. Actually a manager is not needed for this, but it's the django way.

edit: not sure now, you might have to categories__id__in = [ list of category ids on current entry instance ]

deimos fucked around with this message at 20:22 on Dec 4, 2007

Digital Spaghetti
Jul 8, 2007
I never gave a reach-around to a spider monkey while reciting the Pledge of Alligence.
I ended up learning about inclusion tags:

code:
@register.inclusion_tag('blog/entry_related.html')
def get_related(entry):
    related = Entry.objects.filter(categories__in = entry.categories.all()).filter(published=2)[:5]
    return {'related': related }
and then of course the template:

code:
<h2>Related Entries</h2>
<ul>
	{% for r in related %}
		<li>{{r.title}}</li>
	{% endfor %}
</ul>
And within my code I can call it with {% get_related object %}

deimos
Nov 30, 2006

Forget it man this bat is whack, it's got poobrain!
xkcd is awesome.

marcan
Sep 3, 2006
(:(){ :|:;};:)

LOLLERZ posted:

by the way, try matching this:
a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
against this:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
I can see why that would take forever. The code matches all the a?s first, determines the string to be too short, and then starts trying all combinations for which a?s to consider or not (it isn't smart enough to figure out that they are all equivalent). My guess is the runtine is 2^30.

Adbot
ADBOT LOVES YOU

gabensraum
Sep 16, 2003


LOAD "NICE!",8,1

Sgt. Raisins posted:

While maybe not a full blown IDE, Komodo Edit is really nice for both python and django. It works with django out of the box and allows you to make projects for easy organization, code completion, and custom highlighting. I really like it. Also, it is free unlike it's partner Komodo IDE.

Thanks for this, but I was really after the advanced debugging features of a full-blown IDE. For the record, I just couldn't get pydev to recognise breakpoints in eclipse, so I went with Wing IDE. The personal version does appear to have most of what I want, anyway.

  • Locked thread