Mat*_*zuk 0 python django methods field model
有没有更好的方法来处理模型内的这些功能?
class MyModel ( models.Model ):
    name = models.CharField( max_length=50 )
    foo = models.CharField( max_length=50 )
    def style_foo():
        return '<a href="/contract/print/sample/%s/">%s</a>' % ( self.pk, _( 'View sample' ) )
    style_foo.allow_tags = True
    style_foo.short_description = _('Style sample')
Run Code Online (Sandbox Code Playgroud)
我的模型本身已经过多了.这些功能使我的模型文件几乎不可读.我有几十个.我需要那些.
我正在使用重载的contrib.admin模板进行CRM系统重载,因此有时更容易编写一行或两行方法,并在Admin模型的list_display =()上使用它,而不是仅按顺序重写模板admin/change_list_result.html换一行.
我试图在一个类中定义模型字段,并在类中继承这些方法,但这很奇怪.
你有什么建议吗?
我不完全确定你要做什么,但这可能会有所帮助.首先,作为一般规则,您不应将格式/显示类型的信息(例如HTML)放入模型级别.您应该在其他地方格式化HTML,并设计模型以便返回任何给定对象的URL.例如:
# views.py
from django.db import models
class MyModel(models.Model):
    name = models.CharField(max_length=50)
    @models.permalink
    def get_absolute_url(self):
        return ('view-sample', [self.pk])
# urls.py
from myapps.models import view_sample
urlpatterns = patterns('',
    url(r'^contract/print/sample/(?P<sample>.*)/$', view_sample, name='view-sample'),
# view_template.html
<p><a href="{{ anySample.get_absolute_url }}">Click to view sample</a></p>
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1582 次  |  
        
|   最近记录:  |