我正在尝试使用一些现有代码创建一个django幻灯片应用并添加一些新内容。我不确定我所做的事情是否正确,我认为问题出在我的models.py
和初学者身上,我认为我需要一些建议。
models.py
from django.db import models
import datetime
class Slider(models.Model):
title = models.CharField(max_length=100)
description = models.TextField(blank=True)
slideshow = models.ForeignKey('Slideshow')
images = models.ImageField(upload_to='slideshow', max_length=1000, blank=True, null=True)
def __unicode__ (self):
return self.title
class Slideshow(models.model):
name = models.CharField(max_length=50)
touchEnabled = models.BooleanField(blank=True, default=False)
speed = models.IntegerField(blank=True, default=500)
class wrapperClass_options(models.Model):
choices = (('mydiv'))
wrapperClass = models.CharField(blank=True, max_length=20, default=choices)
# div class to wrap the slider in. Change it to prevent using default styles.
pub_date = models.DateTimeField(auto_now=True)
def __unicode__(self):
return self.name
我很确定我的BooleanField
和IntegerField
还可以,但我对CharField不太确定。
charfield的默认值是#mydiv
但是它需要能够被改变为开发人员需要它的任何东西,我是通过创建wrapperclass_options并添加默认值来做正确的选择='mydiv'或者我应该做一些完全不同的事情?
以下是我的admin.py
admin.py
from satchmo_slideshow.models import Slider, Slideshow
from django.contrib import admin
class SlideInline(admin.StackedInline):
model = Slider
class SlideshowAdmin(admin.ModelAdmin):
fieldsets = [(title, {'fields': ['name']}),
('speed', {'fields': ['Default: 500ms']}),
('wrapperClass', {'fields': ['Default: mydiv']}),
('touchEnabled', {'fields': ['Default: False']}),
]
inlines = [SlideInline]
list_display = ['name', 'pub_date']
list_filter = ['pub_date']
search_fields = ['name']
admin.site.register(Slideshow, SlideshowAdmin)
使用python 2.7和django 1.4.2