2013-02-17 3 views
2

Django 관리자에서 작업하는 사용자 정의보기를 얻으려고합니다. 나는 다음 모델을 가지고있다 :Django 관리자에게 사용자 정의보기 추가

class Reseller(models.Model): 
    first_name = models.CharField(max_length=64, verbose_name='First Name') 
    last_name = models.CharField(max_length=64, verbose_name='Last Name') 
    email = models.CharField(max_length=64, verbose_name='E-mail') 
    password = models.CharField(max_length=64, blank=True, editable=False) 

이것은 사용자 정의 버튼 (비밀번호 재설정)을 추가 한 방법이다. 사용자 정의보기 (change_form.html 확장) 나는이에 대한이 : argument of type 'Reseller' is not iterable : 나는 다음 얻을이 코드를 실행하면 내가 admin.py

from django.conf.urls.defaults import patterns 
from django.contrib import admin 
from django.shortcuts import redirect 
from django.shortcuts import render_to_response 
from django.template import RequestContext 

from myapp.resellers.models import Reseller 

class ResellerAdmin(admin.ModelAdmin): 
    list_display = ('id', 'first_name', 'last_name', 'email') 
    list_filter = ('email') 
    search_fields = ('first_name', 'last_name', 'email') 
    ordering = ['-id', ] 

    def get_urls(self): 
     urls = super(ResellerAdmin, self).get_urls() 
     my_urls = patterns('', 
          (r'(?P<id>\d+)/reset_password/$', 
          self.admin_site.admin_view(self.reset_password)), 
         ) 
     return my_urls + urls 

    def reset_password(self, request, id): 
     entry = Reseller.objects.get(pk=id) 
     [...GENERATE AND SEND PASSWORD FUNCTION GOES HERE...] 
     return redirect(entry) 


admin.site.register(Reseller, ResellerAdmin) 

에있는 무엇

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

{% load i18n %} 

{% block object-tools %} 
{% if change %} 
    <ul class="object-tools"> 
    <li><a href="reset_password/">Reset Password</a></li> 
    </ul> 

{% endif %} 
{% endblock %} 

. 나는 장고를 처음 사용하기 때문에 어딘가에 어리석은 실수가있다. 따라서 제발 downvote하지 말아라.

답변

2

redirect에 대한 인자로서 모델을 건네 주면 모델 get_absolute_url()이 호출 될 것이다 정의되지 않음 (docs 참조).
get_absolute_url() 메소드를 리셀러 클래스에 추가하십시오.

관련 문제