Django admin返回TypeError

时间:2013-11-01 08:43:04

标签: django django-models django-admin

我无法登录django app中的管理面板。 它返回错误(在此处列出:http://dpaste.com/1437248/)。

我的admin.py:

from app.models import *
from django.contrib import admin

admin.site.register(Product, Product.Admin)

我的models.py(部分):

class Product(BaseModel):
    company = models.ForeignKey(Company, null=True, blank=True)
    title = models.CharField(max_length=128)
    description = models.TextField()
    category = models.ForeignKey(ProductCategory, null=True, blank=True)
    price = models.DecimalField(max_digits=5,decimal_places=2)

    image = models.ImageField(upload_to=product_upload_to)
    thumb = models.ImageField(upload_to=thumb_upload_to)

    def save(self, force_update=False, force_insert=False, thumb_size=(120,120)):
        image = Image.open(self.image)
        image.thumbnail(thumb_size, Image.ANTIALIAS)

        temp_handle = StringIO()
        image.save(temp_handle, 'png')
        temp_handle.seek(0) # rewind the file
        suf = SimpleUploadedFile(os.path.split(self.image.name)[-1],
                                 temp_handle.read(),
                                 content_type='image/png')
        self.thumb.save(suf.name+'.png', suf, save=False)
        super(Product, self).save(force_update, force_insert)

    class Admin(admin.ModelAdmin):
        list_display = ('title','price')

修改 现在我确定这个错误不是由admin.py/Admin类引起的 - 我删除了admin.py的内容,但错误仍然存​​在。

1 个答案:

答案 0 :(得分:0)

模型管理类不应位于Product模型中。在admin.py中定义它。

from app.models import *
from django.contrib import admin

class ProductAdmin(admin.ModelAdmin):
    list_display = ('title','price')

admin.site.register(Product, ProductAdmin)