我有一个诊疗模式,目前他们的链接看起来像这样的Django 1.6:创建蛞蝓网址
localhost:8000/clinic/1/
我想让他们看起来像这样
localhost:8000/clinic/Nice-Medical-Clinic/
我想蛞蝓是诊所
这里的名称是models.py
class Clinic(models.Model):
name = models.CharField(max_length=500)
email = models.EmailField(blank = True, null = True)
address = map_fields.AddressField(max_length=200
website = models.CharField(max_length=50, blank = True, null = True)
submitted_on = models.DateTimeField(auto_now_add=True, null = True, blank = True)
def get_absolute_url(self):
from django.core.urlresolvers import reverse
return reverse('meddy1.views.clinicProfile', args=[str(self.id)])
这里是views.py
def clinicProfile(request, slug, id):
clinic = Clinic.objects.get(id=id)
doctors = Doctor.objects.all().order_by('-netlikes')
d = getVariables()
d.update({'clinic': clinic, 'doctors': doctors, })
return render(request, 'meddy1/clinicprofile.html', d)
urls.py
url(r'^clinic/(?P<id>\d+)/$', views.clinicProfile, name='clinicProfile'),
感谢@cor。这只适用于我补充的新诊所。现有的诊所呢?我怎样才能让现有的诊所有一个slu as的诊所名称? – 2014-09-12 10:55:01
我不知道最好的办法。我会从shell手动执行它。一旦你做出了改变并迁移de db,就像是:'clinics = Clinic.objects.all()'然后'在诊所就诊:clinic.slug = slugify(clinic.name,instance = clinic)' – cor 2014-09-12 10:59:26
这是实际上比这更容易。诊所= Clinic.objects.all()'然后'在诊所诊所:clinic.save()'。另外请记住,诊所的名称必须是唯一的。你不能将同一个网址映射到两个不同的诊所。 – Jonathan 2014-09-12 11:10:45