2016-08-30 1 views
1

장고의 현재 선택된 외부 키를 편집 허용 :은 그래서 현재 내가 이런 일을 관리

모델 :

class ConfirmEmail(models.Model): 
    report = models.ForeignKey(Report) 
    owner = models.CharField(max_length = 100) 
    emails = models.ManyToManyField(Sdm) 

관리자 :

@admin.register(ConfirmEmail) 
class ConfirmEmailAdmin(admin.ModelAdmin): 
    change_form_template = 'admin/phone/index.html' 
    readonly_fields = ('owner',) 
    filter_horizontal = ('emails',) 
    list_display = ('owner','report') 

내가 코드에서이 객체를 생성 - 보고서 개체를 설정한다는 의미입니다. 그러나 내가 사용자가 해당 보고서 개체를 편집 할 수 있도록 허용 할 수 있다면 하나만 설정하면 Django admin에 표시됩니다. 그들은 그것을 바꿀 수 있습니다 (그래서 드롭 다운 메뉴가 더 이상 존재하지 않기를 바랍니다) 좋은 연필 아이콘이 여전히있을 것입니다. 그러나 "+"아이콘 같은 것은 사라질 것입니다.

사용자가 모든 보고서를 편집 할 수 없다는 의미는 아니며 단지 ConfirmEmail Admin의 특정 보고서 만 볼 수 있다는 것입니다.

나는이 일로 때려 눕혀 버렸고 제대로 작동하지 않는 것 같습니다.

또한 현재 보고서 양식을 ConfirmEmail 양식에 포함 시키려고합니다. 그러나 어떻게 그렇게 할 것인지 모르겠습니다.

답변

0

먼저 보고서 모델에 대한 모델 관리자를 도입 한 다음 has_add_permission ReportAdmin의 기능을 재정의해야합니다. 또한 제거 할 수 있습니다

@admin.register(Report) 
class ReportAdmin(admin.ModelAdmin): 

    # whatever you want here 

    def has_add_permission(self, request): 
     return False 

는/페이지에 자바 스크립트를 사용하여 + 버튼 을 해제하지만, 그는 추가 URL을 알고, 또는 자바 스크립트를 비활성화하면 사용자가 손상 될 수 있음을 유의하십시오.

+0

+를 제거하려면 javascript를 사용해야합니다. 그것들이 보고서를 추가하기를 원하지는 않는다. 기능성은 여전히 ​​존재한다. 필자는 사용자가 전체 보고서를 확인 이메일 관리자 페이지에 표시하여 검토 할 수 있기를 바랍니다. – khancock

관련 문제