2017-12-28 30 views
0

Django의 관리자 패널에서 Django 모델의 양식 페이지 (/ add/page)에 하드 코딩 된 링크를 어떻게 추가합니까? 이것은 변경되지 않을 문서에 대한 링크입니다. 필드에 입력 할 값을 파악하기 위해 사용자가 참조 할 때마다 양식에이 링크가 항상 나타나기를 바랍니다.Django는 관리자 코드의 양식보기 페이지에 하드 코드 된 href 링크를 추가합니다.

필요 : 사용자 정의 필드? 내장 필드가 이미 있습니까? 어떻게 든 관리자 템플릿을 수정 하시겠습니까? 어딘가에 도우미 함수를 추가 하시겠습니까?

"변경 목록"보기를 말하는 것이 아닙니다. 모델 내에서 객체를 추가하거나 편집 할 때 /change/ 또는 /add/ 페이지 뷰를 참조합니다.

add links in Django admin model form

models.py

class DateRange(models.Model): 

    date_name = models.CharField(max_length=100) 
    adwords_name = models.CharField(max_length=100) 
    bingads_name = models.CharField(max_length=100) 

    def __str__(self): 
     return self.date_name 

forms.py

class DateRangeAdminForm(forms.ModelForm): 
    class Meta: 
     model = DateRange 
     fields = '__all__' 

admin.py

일할 수 change_form.html 확장
@admin.register(DateRange) 
class DateRangeAdmin(admin.ModelAdmin): 
    form = DateRangeAdminForm 
    list_display = ['date_name', 'adwords_name', 'bingads_name'] 

답변

1

- 상단에 링크가 추가됩니다.

{% extends "admin/change_form.html" %} 

{% block object-tools %} 
    {{ block.super }} 
    <ul> 
     <li> 
      <a href="https://link1.com">Adwords documentation</a> 
     </li> 
     <li> 
      <a href="https://link2.com">Bing ads documentation</a> 
     </li> 
    </ul> 
{% endblock object-tools %} 

관련 문서 :

https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#overriding-admin-templates

https://docs.djangoproject.com/en/2.0/howto/overriding-templates/#overriding-from-an-app-s-template-directory

당신의 이름 공간 템플릿 디렉토리에이 파일을 만들기 "템플릿-DIR"

templates-dir/admin/myapp/daterange/change_form.html 여기에 언급

+0

나는 배울 것이 많다. 시간과 노력에 감사드립니다. 귀하의 조언은 효과가있었습니다. 이 페이지에 대한 내 로컬 호스트 링크는 'http : //127.0.0.1 : 8000/admin/scorecards/daterange/add /'입니다. 경로가 관리자와 일치해야하기 때문에 모든 네임 스페이스가 change_form.html에 도착해야하는 이유는 무엇입니까? – Jarad

+0

제 생각에 관리자 템플릿은 앱 및 모델별로 네임 스페이스를 가질 수 있으므로 특정 모델/앱에 대한 관리 템플릿을 다른 사람을 방해하지 않고 재정의 할 수 있습니다 (URL이 "이유"라고 말하지 않습니다. 예를 들어,'myapp'의 모든 모델에 링크가 나타나길 원한다면 파일을'templates-dir/admin/myapp/change_form.html'로 옮길 수 있습니다. – whp