我正在创建一个Web应用程序,我需要在Django中将IP地址作为URL参数。但是,我想删除这些点,因为它们在URL中无效。也许用破折号代替它们?这样做有什么好办法吗?
这是我的模特:
models.py
class Machine(models.Model):
ip = models.CharField(max_length=15, unique=True) #255.255.255.255
name = models.CharField(max_length=16, default="") #SSH-Server
number_of_threats = models.IntegerField(default=0)
以下是我的观点:
def machine(request, ip):
print machine_ip
ip = Machine.objects.get(ip=ip)
context_dict['machine_ip'] = machine_ip
return render(request, 'topology/machine.html', context_dict)
我现在的格式是:/machine/192.168.1.1 我想要的格式是:/ machine / 192-168-1-1(或类似的)
我看了Slugify,因为它有类似的功能,但它看起来不会像点一样。
有关良好做法的任何建议吗?
答案 0 :(得分:2)
def machine(request, ip):
print machine_ip
ip = Machine.objects.get(ip=ip)
context_dict['machine_ip'] = machine_ip.replace('.', '-')
return render(request, 'topology/machine.html', context_dict)
并在urls.py中创建参数ip
(?P<ip>.*)