2017-02-18 4 views
0

Grund so, wie es in den models.py, um ein Beispiel zu tun:Django: Wie funktionieren allow_tags und short_description?

class Foo(models.Model): 
    title = models.CharField(max_length=200) 
    ... 

    def custom_tag(self): 
     return ('custom: %s' % self.title) 
    custom_tag.allow_tags = True 
    custom_tag.short_description = _("Custom Tag") 

oder, wenn innerhalb von Datei admin.py;

class FooAdmin(admin.ModelAdmin): 
    list_display = ['title', 'custom_tag', ...] 
    ... 

    def custom_tag(self, instance): 
     return ('custom: %s' % instance.title) 
    custom_tag.allow_tags = True 
    custom_tag.short_description = _("Custom Tag") 


admin.site.register(Foo, FooAdmin) 

Meine Frage ist, wie funktioniert allow_tags und short_description funktioniert? und wo finde ich die relevante Dokumentation?

Ich kann es nicht an den documentation oder auch bei der Entwicklung Version der Dokumentation bei source code

Antwort

2

Sie suchen gefunden. Wenn Sie sich die für Django 1.10 ansehen (scrollen Sie nach unten zu "Veraltet seit Version 1.9"), werden Sie sehen, dass sie die Option allow_tags entfernen und sie durch andere Möglichkeiten ersetzen, dasselbe zu erreichen. Es gibt viele Beispiele dafür, wie man short_description verwendet, obwohl es nicht veraltet ist.

Wenn Sie wirklich den Quellcode sehen möchten, here's the line where it gets the short description. Mach dir keine Sorgen über die allow_tags, da es in 1.11 entfernt wurde - es sollte jetzt automatisch durch die Markierung Zeichenfolge als sicher mit mark_safe() getan werden.


Als Randbemerkung, brauchen Sie nicht die custom_tag() Methode in beiden Orten hinzuzufügen. Der Admin sucht sowohl in der Modell- als auch in der Admin-Klasse nach, so dass eine ausreicht. Wenn es nicht außerhalb des Admins verwendet wird, würde ich empfehlen, es in der Admin-Klasse zu platzieren und zu vermeiden, dass das Modell komplexer wird.

+0

humbb ich sehe ... vielen dank ... (y) –

Verwandte Themen