4
嗨。我在阅读以下问题后问这个问题:Question_1和Question_2。 Question_1没有任何适当的答案,Question_2有另一种解决方案,但不是完美的解决方案。Django内联 - 允许添加禁用编辑
在这里,我有两个模型和管理员为他们。
models.py
class TaskList(models.Model):
task_name = models.CharField(max_length = 255, unique = True)
description = models.TextField()
assignee_role = models.ForeignKey(Group, related_name = "assignee_roles")
assignee_name = models.ForeignKey(User, related_name = "assignee_names")
def __unicode__(self):
return "%s" % (self.task_name)
class TaskComments(models.Model):
tasklist = models.ForeignKey(TaskList)
time = models.DateTimeField(null = True, blank = True)
comment = models.TextField()
def __unicode__(self):
return ""
def save(self, *args, **kwargs):
self.time = datetime.datetime.now()
super(TaskComments, self).save(*args, **kwargs)
admin.py
class TaskCommentsInlineAdmin(admin.TabularInline):
model = TaskComments
can_delete = False
class TaskListAdmin(admin.ModelAdmin):
inlines = [TaskCommentsInlineAdmin, ]
def add_view(self, request, form_url = '', extra_context = None):
self.readonly_fields =()
return super(TaskListAdmin, self).add_view(request, form_url, extra_context)
def change_view(self, request, form_url = '', extra_context = None):
self.readonly_fields = ('task_name', 'description',)
return super(TaskListAdmin, self).change_view(request, form_url, extra_context)
在这里,模型TaskComments被在任务列表用作内联。
方案1
在这里我想要实现的是:
当添加任务评论
- 隐藏字段 “时间”,并在后台更新。
- 能够输入“注释”并保存。
当保存评论
- 后打开两个“时间”和“备注”栏应为已添加注释可见和只读。
- 能够添加新评论,如上所述。
方案2
- 同前面的方案。
- 唯一的补充是,对于为其他用户添加和只读的用户,该评论应该是可编辑的。 (我可以更新并获取添加评论的用户)。
这些是我想达到的目的。我曾尝试在管理员中使用add_view和change_view。但他们并不是为内联工作的。请提供解决方案来实现这些目标。提前致谢。