Я хочу создать своего администратора следующим образом: http://lightbird.net/dbe/_static/p1.png
Что у меня есть прямо сейчас:
def get_upload_file_name(instance, filename):
new_file_path_and_name = os.path.join(MEDIA_ROOT,'img/albums')
return new_file_path_and_name
class Album(models.Model):
title = models.CharField(max_length = 60)
def __unicode__(self):
return self.title
class Tag(models.Model):
tag = models.CharField(max_length = 50)
def __unicode__(self):
return self.tag
class Image(models.Model):
title = models.CharField(max_length = 60, blank = True, null = True)
image = models.FileField(upload_to = get_upload_file_name)
tags = models.ManyToManyField(Tag, blank = True)
albums = models.ForeignKey(Album)
width = models.IntegerField(blank = True, null = True)
height = models.IntegerField(blank = True, null = True)
created = models.DateTimeField(auto_now_add=True)
def tags_(self):
lst = [x[1] for x in self.tags.values_list()]
return str(join(lst, ", "))
def albums_(self):
lst = [x[1] for x in self.albums.values_list()]
return str(join(lst, ", "))
def __unicode__(self):
return self.image.name
class AlbumAdmin(admin.ModelAdmin):
search_fields = ["title"]
list_display = ["title"]
class TagAdmin(admin.ModelAdmin):
list_display = ["tag"]
class ImageAdmin(admin.ModelAdmin):
search_fields = ["title"]
list_display = ["__unicode__", "title", "tags_", "albums_", "created"]
list_filter = ["tags", "albums"]
admin.site.register(Album, AlbumAdmin)
admin.site.register(Tag, TagAdmin)
admin.site.register(Image, ImageAdmin)
Я не уверен, какой приемлемый ввод для list_display ImageAdmin. Я слежу за световой птицей (http://lightbird.net/dbe/photo.html) учебник, но, поскольку он устарел, я делаю некоторые из своих собственных выборов по пути. Я не уверен, как изменить мои методы tags_ и Albums_ для достижения макета администратора.
Я получаю сообщение об ошибке:
File "/Users/bradfordli/Development/DjangoEnvironment/django_1_6_4/bin/PersonalWebsite/gallery/models.py" in tags_
45. return str(join(lst, ", "))
Exception Type: NameError at /admin/gallery/image/
Exception Value: global name 'join' is not defined
Я не знаю, как это исправить, поскольку я не уверен в list_display's
правильном вводе
'Album' object has no attribute 'values_list'
12.05.2014