django-forum

by shabda on January 7, 2010

twitter ready version:

We have released a Django forum application, with some cool features not in any other Django based forum. You can get it here or see it in action.

blog version

There are quite a few Django based forum applications, so why another? Its a bit of a rhetorical question, as the answer is “none of them met my needs exactly, so we created my own”, as you might expect.

Without further ado here is a list of features. It is available on uswaretech.com/forum/.

  • Based on, inspired by and ripped from PunBB. (Thanks!)
  • PunBB like 3 phased hierarchy [Forum]->Subforum->Topic->Post
  • Tightly integrated with Socialauth. (Screenshots)
  • Gravatar support
  • Moderation features (Close, stikify, make announcement etc.)
  • Ajax based posting

We are starting our forums based on this app, so we plan to be supporting and developing this for foreseeable future. Fork this on Github or check this out now.

Screenshots

Main page



Post page



Login Page




We build amazing web apps. Contact us

No related posts.

25 Tweets 10 Comments

{ 3 trackbacks }

Zwei Django-Links – Der Schockwellenreiter
January 8, 2010 at 6:00 am
Random Links #107 | YASDW - yet another software developer weblog
January 11, 2010 at 12:53 am
django-forum « Fábio M. O. Morbec
February 4, 2010 at 7:45 am

{ 46 comments… read them below or add one }

1 Tim January 7, 2010 at 6:48 am

SocialAuth link…. htpp > http

2 shabda January 7, 2010 at 6:55 am

Tim: Thanks. Fixed.

3 pablo January 7, 2010 at 9:36 am

Is it possible to remove gravatars and use django-registration instead of socialauth?

4 shabda January 7, 2010 at 9:53 am

@pablo yes, Socialauth just works as a authentiction backend, you can use any other as well.

5 pablo January 7, 2010 at 2:57 pm

Can you please add documentation or tutorial how to use django-registration instead of socialauth?

6 Adomas January 7, 2010 at 2:59 pm

Hey, it’s called Gravatar, not Gravavtar! :-)

7 shabda January 8, 2010 at 1:59 am

@Adoma: Thanks. UPdated.

8 shabda January 8, 2010 at 2:00 am

@pablo: Ok, will do that in the forum. :)

9 William Ferrell January 9, 2010 at 10:36 am

Just following up on my Twitter comment a bit. This app looks very good, and I love how fast the demo is. This is clean, compact, and lightweight.

When I mentioned threading, its absence isn’t a complaint, but a feature request (and I’m tempted to just plug it in myself via Treebeard, which includes a sample threaded forum app anyway).

You mentioned that your favorite bulletin apps don’t support threading, but vBulletin actually does. Unfortunately, vBulletin handles threading in exactly the wrong way.

In “linear” mode, it does what it always did before threading was introduced — it just lists every post in chronological order, oldest to newest, and splits the “thread” into multiple pages once there’s more than 15 or so posts. Like I mentioned in my Twitter reply, popular threads on busy forums can easily grow to over one thousand pages. Any way you slice that, it’s simply unusable like this. You simply can’t follow the discussion unless you’ve got a week or two to devote to clicking through (and reading) one thousand pages of posts.

In “hybrid” and “threaded” modes, it does show a threaded view of the posts in the thread (i.e. you can actually spot when someone replies to someone else versus just posting a new post in the thread) and it’s possible to see the “shape” of the conversation. Hybrid mode continues listing all posts chronologically beneath the thread list, while “threaded” mode just shows one post at a time.

Hybrid mode is useless on large threads — it’s just linear mode with a widget that contains a list of all posts (tens of thousands on the example monster thread I mentioned). Threaded mode is worse-than-useless — it forces you to deal with every message individually instead of being able to view a slice of the conversation in context.

There’s two sites I can think of off the top my head that have very different forum systems and that handle threading much better. They’re not perfect, but they do provide a good example of how it should work. One is Slashdot, which has a sickeningly over-complicated Javascript-based monstrosity of a threading system, and the other is Reddit, which goes the other direction with a lightweight, spartan system. I point to Slashdot as a good example in spite of its complex layout because it’s effective at what it does. Reddit is a closer idea of what I picture django-forum supporting.

They both let you do something very useful in a discussion — you can quickly filter away (hide) the stuff you don’t care about. When “what you care about” changes, you can quickly rearrange the display (or navigate to another part of the thread, if you’re not using Javascript) to refocus your attention on another conversation. Note that both sites take moderation into consideration, too, so on a busy site with lots of chatter (and decent moderation in place), the junk gets filtered away automatically and you have to deliberately ask to see what gets hidden.

The one thing vBulletin does demonstrate successfully is that you can add a threading mechanism to an existing forum without screwing up the “old” way — the good news is threading can be supported behind-the-scenes and an “old school” list-posts-chronologically board can still be plopped in place quickly (just hide the threading options and act like threading’s not there). For people who are used to things working that way and who won’t consider switching, they can still have what they’re used to. For folks who don’t want to trudge through dozens of pages to look for replies to a post they’re interested in, full threading can be enabled to keep them happy too.

Just my two cents, but hopefully this makes a bit more sense than just a simple “looks neat, but I wish it had threads” comment :)

10 Erik January 18, 2010 at 12:25 pm

PunBB is one of the lightest and most flexible forum systems I’ve ever used. Last year i installed and customized punbb’s asp.net version this past month I did a php version and customization today I will look at the python version!

Great post

11 Antti Kaihola January 27, 2010 at 3:38 pm

Dinette is now on the forum apps comparison page in the Django wiki: http://code.djangoproject.com/wiki/ForumAppsComparison

Most of the feature columns have question marks in them, sorry I didn’t yet have the time to research Dinette. Feel free to fill them in.

12 shabda January 28, 2010 at 1:31 am

@Antti: Thanks. Will do that.

13 Django Forum February 9, 2010 at 11:26 am

Nice! I try django-forum in my application.

14 urilubrisee February 28, 2010 at 12:00 am

Hi everone I found a new way to learn about web marketing here. It just started tonight at Midnight. Its brand new on the internet..Unleashed and ready to drive Thousands to your website Instantly

Its pretty interesting wa to get people to your website and complete instructions on how to do it.

15 Ramiamice March 7, 2010 at 4:49 am

butts girls hot

20 notauser January 7, 2010 at 4:47 am

I like the social auth login features.Is there a good/clean way to integrate social auth with an existing django authentication db? E.g. providing generic views to let current users link their accounts against their google/twitter ID, and letting new users sign up with whatever auth mechanism they prefer.

This comment was originally posted on Hacker News

27 ajcronk January 7, 2010 at 10:37 am

I started with their socialauth app, and heavily modified it for http://bln.kr. I wanted to allow a user to login with one service, then add additional services to the same account.http://uswaretech.com/blog/2009/08/django-socialauth-login-v…

This comment was originally posted on Hacker News

28 mikexstudios January 7, 2010 at 5:42 am

Yes, there are a number of solutions for django. The one used by the forum (and also by cnprog.com) is django-authopenid (http://bitbucket.org/benoitc/django-authopenid/wiki/Home) which integrates with existing django auth db. Users can choose sign up for an account on your django site or sign in with an openid.Some other solutions include: django-socialauth (http://uswaretech.com/blog/2009/08/django-socialauth-login-v… ;) and django-rpx (http://github.com/howthebodyworks/django-rpx).

This comment was originally posted on Hacker News

30 jayliew January 7, 2010 at 6:29 am

I used django-socialregistration and recommend it. It has generic support for any OAuth (Twitter is one), OpenID, and FacebookConnect.http://github.com/flashingpumpkin/django-socialregistration

I’ve only used the Twitter-OAuth part of it and tweaked it a little to fit my own application, but by and large it works with no probs

This comment was originally posted on Hacker News

31 megamark16 January 7, 2010 at 11:41 am

I really like how simple the layout and design is, very djangothic :-)

This comment was originally posted on Hacker News

32 boundlessdreamz January 7, 2010 at 11:45 am

Does anyone know the equivalent in rails for socialauth ?

This comment was originally posted on Hacker News

34 jbox January 7, 2010 at 6:54 am

I think you guys nailed the look and feel, nice work!A few months ago I was looking for a Django forum. Of the existing solutions, I liked Snapboard best for it’s clean code, relative simplicity and test coverage. In the end I used it but rewrote a substantial part. This code is available on GitHub:http://github.com/johnboxall/snapboard/tree/dev/snapboard/

It’s currently used to host the Mobify forums:http://community.mobify.me/

This comment was originally posted on Hacker News

35 est January 7, 2010 at 12:06 pm

Looking forward GAE port :)

This comment was originally posted on Hacker News

36 est January 7, 2010 at 7:08 am

I have a serious problem with OpenId. Why I permitted login using Google’s OpenId, the OpenId consumer can’t even figure out my correct email and username? OpenId is confusing people.

This comment was originally posted on Hacker News

40 mbup January 7, 2010 at 10:06 am

Isn’t it just a copy of punbb/fluxbb?

This comment was originally posted on Hacker News

Leave a Comment

Additional comments powered by BackType

Previous post:

Next post: