这些是我的模型的简单版本:
class Device(models.Model):
name = models.CharField(max_length=100)
def get_ips(self):
return self.deviceip_set.all()
def get_ips_string(self):
return ', '.join('<a href="http://' + unicode(ip.ip) + '">' + unicode(ip.ip) + '</a>' for ip in self.get_ips())
class DeviceIP(models.Model):
ip = models.GenericIPAddressField()
device = models.ForeignKey(Device)
这是来自我的admin.py:
class DeviceAdmin(admin.ModelAdmin):
list_display = ('__unicode__', 'get_ips_string')
admin.site.register(Device, DeviceAdmin)
从MVT / MVC的角度来看,应该在模型中定义get_ips_string()
之类的方法,还是在它们实际生成HTML时更适合其他地方(如admin.py)?
如果我决定创建自己的模板而不是使用管理网站,那会对定义get_ips_string()
等方法产生影响吗?
答案 0 :(得分:0)
ModelAdmin
类并在fields
,fieldsets
或list_display
中引用。因此,ModelAdmin
对应于视图层。 <强> P上。 S。对于Django管理员自定义,您可能会发现django-grappelli
(http://grappelliproject.com)或xadmin
(http://demo.xadmin.io)鼓舞人心。