Как адаптировать Django приложение до версии Django 1.6?

Вопрос такой, начал изучать python+django 1.6
Изучаю на примере создания личного блога портфолио.
Встал вопрос о самом компоненте портфолио, нашел в сети и форкнул к себе в гитхаб вот это приложение _https://github.com/powellc/django-portfolio
Но оно написано очень давно и конечно сыпет ошибки.
Начну по порядку сначала ругалось вот на это:
from django.views.generic import date_based, list_detail

Нашел вроде решение что нужно импорт изменить на такой:
from django.views.generic.list import ListView
Потом начало ругаться на:
from tagging.fields import TagField и на import tagging

В целях простого теста просто закоментил для начала.
Но позже вылезла вот такая ошибка:
__init__() takes exactly 1 argument (5 given) вот тут views.py in project_list, line 13

Сама 13 строка файла вот так выглядит:
**kwargs
Сам файл views.py приведу:
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.http import Http404
from django.views.generic import date_based, list_detail
from portfolio.models import Project, Medium
def project_list(request, page=0, **kwargs):
    return list_detail.object_list(
        request,
        queryset=Project.objects.public(),
        paginate_by=5,
        page=page,
        **kwargs
    )
project_list.__doc__ = list_detail.object_list.__doc__
def medium_list(request, **kwargs):
    return list_detail.object_list(
        request,
        queryset = Medium.objects.all(),
        **kwargs
    )

Ну и файл models.py сразу
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.db.models import permalink
from tagging.fields import TagField
from portfolio.managers import PublicManager
import tagging
class Client(models.Model):
    name = models.CharField(max_length=250)
    url = models.URLField(blank=True)
    
    class Meta:
        db_table = "clients"
        ordering = ['name']
        
    def __unicode__(self):
        return self.name
    
class Medium(models.Model):
    name = models.CharField(max_length=250)
    slug = models.SlugField()
    
    class Meta:
        db_table = "media"
        verbose_name_plural = "media"
        ordering = ['name']
    
    def __unicode__(self):
        return self.name
        
    @permalink
    def get_absolute_url(self):
        return self.slug
    
class Project(models.Model):
    name = models.CharField(max_length=250)
    slug = models.SlugField()
    project_url = models.URLField('Project URL')
    description = models.TextField(blank=True)
    client = models.ForeignKey(Client)
    media = models.ManyToManyField(Medium)
    disciplines = TagField()
    completion_date = models.DateField()
    in_development = models.BooleanField()
    is_public = models.BooleanField(default=True)
    overview_image = models.ImageField(upload_to="projects/overview/")
    detail_image = models.ImageField(upload_to="projects/detail/")
    objects         = PublicManager()
    
    class Meta:
        db_table = "projects"
        ordering = ['-completion_date']
        
    def __unicode__(self):
        return self.name
    
    @permalink
    def get_absolute_url(self):
        return self.slug

Файлы привел оригинального состояния без моих правок, помогите запустить приложение.
Сразу прощения если вопрос не правильно оформил.
  • Вопрос задан
  • 3060 просмотров
Решения вопроса 1
Vintorez
@Vintorez
Хмм, ни одного трейсбэка не приведено, но возможно вы просто забыли установить django-tagging от которого зависит работа django-portfolio.

А вообще, почему бы вам не посмотреть просто в сторону более свежих батареек для джанго?
Вот вроде простенькая вещь: https://github.com/dokterbob/django-portfolio
А вот эта потяжелее: https://github.com/stefanfoulis/django-filer
Но обе вроде мейнтейнятся авторами.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dizballanze
@dizballanze
Software developer at Yandex
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы