Django:如何为特定模型自定义管理表单

时间:2015-01-24 19:26:52

标签: django django-models django-admin django-views

首先,我道歉问题标题可能与我的查询无关。我也很困惑我想做什么,因为我对django不熟悉。

我想创建简单的评论系统。要求很明显,用户可以发布多个图像的评论。每条评论都应该有回复。所以我创建了以下模型。

#comment table 
class Comments(models.Model):
    parent = models.ForeignKey('self',null=True) // for comment reply
    description = models.TextField(max_length=1000, blank=False, null=False)

    class Meta:
        db_table = u'comments'


#images table
class CommentImages(models.Model):
    comment = models.ForeignKey(Comments)
    image = models.ImageField()

    class Meta:
        db_table = u'comments_images'

我对管理员方面有疑问如何管理这些事情?

我想在管理员查看特定评论时显示图片列表。

管理员可以查看特定评论的回复。

我在这里画一个例子。 enter image description here

所以我不想问一下编码问题。我想知道将使用哪些技术来更改管理视图。我也在为其他模型使用管理面板,所以我想更改特定的模型视图。

我怎样才能得到这些东西?谢谢

1 个答案:

答案 0 :(得分:-1)

因此,要使图像呈现为图像,请编写自定义小部件:

class PhotoWidget(ClearableFileInput):
    template_with_initial = '<p class="file-upload"><span class="clearable-file-input">%(input)s %(clear_template)s<br />' \
                            '%(initial)s</p>'

    template_with_clear = '<span class="clearable-file-input">%(clear)s <label for="%(clear_checkbox_id)s">' \
                          '%(clear_checkbox_label)s</label></span>'
    # this is the most important line
    url_markup_template = '<img src="{0}" width="300"/>' 

现在创建一些表单:

class CommentImagesForm(forms.ModelForm):
   class Meta:
     model = CommentImages
     widgets = {'image': PhotoWidget()}

最后,管理员:

class MyAdmin(admin.ModelAdmin):
  form = CommentImagesForm
  add_form = CommentImagesForm

如果您有任何问题,请与我们联系。