try django's class-based view