Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 10, 2008 17:05:10

Saff
От:
Зарегистрирован: 2008-03-18
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Кастомные вьюшки в админке.

Предположим, есть такая задача:
Есть класс пользователей, есть их комменты.
Помимо полей редактирования пользователя, я хочу зделать листинг комментов с кнопками удалить(и последним элементом форму добавления коммента). Проблема в том, что я использую TabularInline, и комменты внизу отображаются сразу редактируемые, мне же нужно что бы они просто отображались простым текстом, и при этом была галочка(а лучше кнопка) “УДалить”. Полез в дебри формсетов и прочего, пытался изменять задефайненый шаблон, но что то совсем взорвал моск и ничего не получилось ((((
Может кто нибудь знает как примерно решить такую задачу(извеняюсь если вопрос глупый )) )
Вот код:

# -*- coding: utf-8 -*-
from django.db import models
from django.contrib import admin
from django.forms.models import modelformset_factory


#Clients
class Client(models.Model):
fname = models.CharField(max_length=255,verbose_name=u'\u0418\u043c\u044f')
lname = models.CharField(max_length=255,verbose_name=u'\u0424\u0430\u043c\u0438\u043b\u0438\u044f')
sname = models.CharField(max_length=255,verbose_name=u'\u041e\u0442\u0447\u0435\u0441\u0442\u0432\u043e')
email = models.EmailField(max_length=100,verbose_name=u'E-Mail')
phone = models.CharField(max_length=100,verbose_name=u'\u0422\u0435\u043b\u0435\u0444\u043e\u043d')
born = models.DateField()

STATUS_CHOICES = (
('0', u'\u041d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d'),
('1', u'\u041d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439'),
('2', u'\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0439'),
('3', u'\u0414\u043e\u043b\u0436\u043d\u0438\u043a'),
('4', u'\u0421\u043e\u0442\u043e\u043d\u0430!'),
)
status = models.CharField(max_length=2, choices=STATUS_CHOICES,verbose_name=u'')
reg_date = models.DateField(auto_now_add=True,verbose_name=u'\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438')


def __unicode__(self):
mstr = self.fname + " " + self.lname + " " + self.sname
return mstr



class Comments(models.Model):
id_user = models.ForeignKey(Client)
subject = models.CharField(max_length=100,verbose_name=u'\u0422\u0435\u043c\u0430')
comment = models.TextField(max_length=500,verbose_name=u'\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435')
post_date = models.TimeField(auto_now_add=True,verbose_name=u'\u0414\u0430\u0442\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f')




class CommentsInline(admin.TabularInline):
model = Comments
extra = 1
#template = "admin/comment_list.html"


class clietnAdmin(admin.ModelAdmin):
#date_hierarchy = 'fname'
list_display = ['__unicode__','status']

fieldsets = [
(u'\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435', {'fields': ['fname','lname','sname','born']}),
(u'\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u044b', {'fields': ['phone','email','status']}),
]

inlines = [CommentsInline]


admin.site.register(Client,clietnAdmin)
P.S. Ещё интересно, возможно ли отображать TabularInline, грубо говоря как class:collapse? Что то совсем в тупик зашёл ((



Отредактировано (Дек. 11, 2008 12:12:24)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version