Python 使用ModelForm帮助django错误跟踪注释系统

Python 使用ModelForm帮助django错误跟踪注释系统,python,django,comments,bug-tracking,django-forms,Python,Django,Comments,Bug Tracking,Django Forms,我正在尝试使用django向bug跟踪应用程序添加注释组件。我有一个用于注释的文本字段和一个按字段——按用户id自动传播 我希望有人保存注释后,注释文本字段变为只读。我试过几种方法。到目前为止,我想到的最好的方法是将我的注释模型传递到ModelForm中,然后使用formwidget属性将我的字段转换为只读 models.py class CommentForm(ModelForm): cl

我正在尝试使用django向bug跟踪应用程序添加注释组件。我有一个用于注释的文本字段和一个按字段——按用户id自动传播

我希望有人保存注释后,注释文本字段变为只读。我试过几种方法。到目前为止,我想到的最好的方法是将我的注释模型传递到ModelForm中,然后使用formwidget属性将我的字段转换为只读

models.py

class CommentForm(ModelForm):                                                 
    class Meta: 
        model = Comment
        exclude = ('ticket', 'submitted_date', 'modified_date')               
    def __init__(self, *args, **kwargs):
        super(CommentForm, self).__init__(*args, **kwargs)                    
        instance = getattr(self, 'instance', None)                            
        if instance and instance.id:
            self.fields['comments'].widget.attrs['readonly'] = True           

class Comment(models.Model):
    ticket = models.ForeignKey(Ticket)
    by = models.ForeignKey(User, null=True, blank=True, related_name="by")    
    comments = models.TextField(null=True, blank=True)
    submitted_date = models.DateField(auto_now_add=True)                      
    modified_date = models.DateField(auto_now=True)                           
    class Admin:
        list_display = ('comments', 'by',
            'submitted_date', 'modified_date')
        list_filter = ('submitted_date', 'by',)                               
        search_fields = ('comments', 'by',)
我的评论模型与错误跟踪程序中的票证模型相关联。我通过将注释放置在admin.py中的内联中,将注释连接到票据。现在的问题是:如何将ModelForm传递到表格行中?Tablerinline需要一个已定义的模型。然而,一旦我将模型传递到内联中,传递模型表单就变得毫无意义了

管理员

class CommentInline(admin.TabularInline):
    model = Comment
    form = CommentForm()
    search_fields = ['by', ]
    list_filter = ['by', ]
    fields = ('comments', 'by')
    readonly_fields=('by',)
    extra = 1

有人知道如何在不让常规模型的字段覆盖ModelForm的情况下将ModelForm传递到TableLine吗?提前谢谢

不要在tablarinline子类中实例化表单:

    form = CommentForm

谢谢这绝对是个好主意,但我的表单仍然没有覆盖admin.tablarinline中的模型。