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。但他們並不是爲內聯工作的。請提供解決方案來實現這些目標。提前致謝。