2011-02-06 18 views
1

、我々は
def __unicode__(self):を持っている場合は、Djangoのadminに今デフォルトDjangoの管理:デフォルトのモデル表示問題Djangoのモデルで

でモデルを表示する方法を、私はcustmizedを持つようにしたいと、それが使用されます表示フィールド(このオブジェクトをURLとして表示するので、このオブジェクトに移動することができます)を変更することはできません。unicodeメソッドは他の目的に使用されています。私は何をすべきか?

答えて

0

ドン」を返すことができ、これはちょうど非常に単純な例であるadminクラス用

 

class SomeModelAdmin(admin.ModelAdmin): 
    list_display = ('__unicode__', 'active_status') 

    def active_status(self, obj): 
     if obj.profile.is_active: 
      return """One""" 
     return """Two""" 

    active_status.allow_tags = True 
    active_status.description = "" 
 

をカスタムメソッドを作成することができます便利なURLを設定するなどの目的で__unicode__を使用してください。

これは、他の目的のためにあなたの印刷されたオブジェクト名を覆い隠します。

どのビューからリンクを作成しようとしていますか?チェンジリストビューから?変更ビューから?外部キーから?

一般的にモデル(ModelAdmin)の任意のメソッドを定義し、フルHTMLリンク<a href=を返し、allow_tags = Trueに設定し、管理フィールドで参照することができます。

# models method 
def admin_url(self): 
    return '<a href="%s">Edit Model</a>' % the_url 
admin_url.allow_tags = True 


# ModelAdmin method, through ForeignKey 
def admin_url(self, obj): 
    return '<a href="%s">Edit Model</a>' % obj.foreignkey.url 
admin_url.allow_tags = True 
1

あなたはこの機能 にあなたのロジックを置くことができるので、あなたはまた、いくつかのHTMLコード

0

私はこれらの回答に同意しますが、私のマシンでは動作しません。

私はPython3とDjango1.8を使用していましたが、これを使用しようとしています。

class MyModel(models.Model): 

    name = models.CharField(max_length=60) 

    def __str__(self): 
     return 'MyModel: {}'.format(self.name) 
関連する問題