我有一个模型
class ModelName(models.Model):
type = models.ForeignKey(AnotherModel)
slug = models.SlugField(editable=False)
class Meta:
unique_together = (('type', 'slug'),)
@models.permalink
def get_absolute_url(self):
return ('model_detail', (), {'type': self.type.slug, 'slug': self.slug})
和网址
urlpatterns = patterns('',
url(r'^(?P<type>[-\w]+)/(?P<slug>[-\w]+)/$', ModelDetailView.as_view(), name='detail'),
)
和一个 DetailView
class ModelDetailView(DetailView):
model = MyModel
template_name = 'detail.html'
但我得到了异常 MultipleObjectsReturned 因为蛞蝓不是唯一的。我希望 url 是/type/slug/
,因此模型可以包含两条具有相同 slug 但类型不同的记录,因此 url 可能是/1/slug/
并且/2/slug/
具有不同的结果。如何告诉模型同时使用类型和 slug 作为查找,而不仅仅是 slug?