这些是我的模型的简单版本:
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()
在模型中定义类似的方法,或者它们是否更适合其他地方(如 admin.py),因为它们实际上会生成 HTML?
如果我决定创建自己的模板而不是使用管理站点,那会影响get_ips_string()
应该在哪里定义类似的方法吗?